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