Not a member of Pastebin yet?
                        Sign Up,
                        it unlocks many cool features!                    
                - package main
 - import (
 - "database/sql"
 - //"encoding/json"
 - "fmt"
 - _ "github.com/lib/pq"
 - "html/template"
 - "log"
 - "net/http"
 - )
 - //Variables on the page
 - type Pages struct {
 - Name string
 - Url string
 - Title string
 - Description string
 - H1 string
 - Hero string
 - Contents template.HTML
 - Sidebar string
 - Page_list [][]string
 - }
 - //Templates avaliable
 - var templates = template.Must(
 - template.ParseFiles(
 - "templates/head.html",
 - "templates/header.html",
 - "templates/sidebar.html",
 - "templates/content.html",
 - "templates/footer.html",
 - "templates/index.html",
 - ))
 - //Render pages
 - func render_page(new_page *Pages) {
 - http.HandleFunc(new_page.Url,
 - func(w http.ResponseWriter, r *http.Request) {
 - templates.ExecuteTemplate(w, "main", new_page)
 - })
 - }
 - func db_connect() (database *sql.DB, err error) {
 - db, err := sql.Open("postgres", "user=postgres password=cat dbname=postgres host=localhost port=8181 sslmode=disable")
 - if err != nil {
 - log.Fatal(err)
 - }
 - return db, err
 - }
 - func db_count_pages(db *sql.DB, err error) [][]string {
 - var name, url string
 - var page_list [][]string
 - rows, err := db.Query("SELECT name, url FROM pages")
 - for rows.Next() {
 - rows.Scan(&name, &url)
 - page_list = append(page_list, []string{name, url})
 - }
 - return page_list
 - }
 - func db_query_pages(db *sql.DB, err error, page_list [][]string) {
 - var name, url, title, description, h1, hero, sidebar string
 - var contents template.HTML
 - rows, err := db.Query("SELECT * FROM pages")
 - for rows.Next() {
 - rows.Scan(&name, &url, &title, &description, &h1, &hero, &contents, &sidebar)
 - page := &Pages{
 - Name: name,
 - Url: url,
 - Title: title,
 - Description: description,
 - H1: h1,
 - Hero: hero,
 - Contents: contents,
 - Sidebar: sidebar,
 - Page_list: page_list,
 - }
 - render_page(page)
 - }
 - }
 - func main() {
 - fmt.Println("wow")
 - http.Handle("/resources/", http.StripPrefix("/resources/", http.FileServer(http.Dir("resources"))))
 - db, err := db_connect()
 - page_list := db_count_pages(db, err)
 - db_query_pages(db, err, page_list)
 - db.Close()
 - http.ListenAndServe(":8080", nil)
 - }
 
Advertisement
 
                    Add Comment                
                
                        Please, Sign In to add comment