Guest User

Untitled

a guest
Oct 23rd, 2015
313
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.26 KB | None | 0 0
  1. package main
  2.  
  3. import (
  4. "database/sql"
  5. //"encoding/json"
  6. "fmt"
  7. _ "github.com/lib/pq"
  8. "html/template"
  9. "log"
  10. "net/http"
  11. )
  12.  
  13. //Variables on the page
  14.  
  15. type Pages struct {
  16. Name string
  17. Url string
  18. Title string
  19. Description string
  20. H1 string
  21. Hero string
  22. Contents template.HTML
  23. Sidebar string
  24. Page_list [][]string
  25. }
  26.  
  27. //Templates avaliable
  28.  
  29. var templates = template.Must(
  30. template.ParseFiles(
  31. "templates/head.html",
  32. "templates/header.html",
  33. "templates/sidebar.html",
  34. "templates/content.html",
  35. "templates/footer.html",
  36. "templates/index.html",
  37. ))
  38.  
  39. //Render pages
  40.  
  41. func render_page(new_page *Pages) {
  42.  
  43. http.HandleFunc(new_page.Url,
  44. func(w http.ResponseWriter, r *http.Request) {
  45.  
  46. templates.ExecuteTemplate(w, "main", new_page)
  47.  
  48. })
  49.  
  50. }
  51.  
  52. func db_connect() (database *sql.DB, err error) {
  53.  
  54. db, err := sql.Open("postgres", "user=postgres password=cat dbname=postgres host=localhost port=8181 sslmode=disable")
  55.  
  56. if err != nil {
  57. log.Fatal(err)
  58. }
  59.  
  60. return db, err
  61.  
  62. }
  63.  
  64. func db_count_pages(db *sql.DB, err error) [][]string {
  65.  
  66. var name, url string
  67.  
  68. var page_list [][]string
  69.  
  70. rows, err := db.Query("SELECT name, url FROM pages")
  71.  
  72. for rows.Next() {
  73.  
  74. rows.Scan(&name, &url)
  75.  
  76. page_list = append(page_list, []string{name, url})
  77.  
  78. }
  79.  
  80. return page_list
  81.  
  82. }
  83.  
  84. func db_query_pages(db *sql.DB, err error, page_list [][]string) {
  85.  
  86. var name, url, title, description, h1, hero, sidebar string
  87.  
  88. var contents template.HTML
  89.  
  90. rows, err := db.Query("SELECT * FROM pages")
  91.  
  92. for rows.Next() {
  93.  
  94. rows.Scan(&name, &url, &title, &description, &h1, &hero, &contents, &sidebar)
  95.  
  96. page := &Pages{
  97.  
  98. Name: name,
  99. Url: url,
  100. Title: title,
  101. Description: description,
  102. H1: h1,
  103. Hero: hero,
  104. Contents: contents,
  105. Sidebar: sidebar,
  106. Page_list: page_list,
  107. }
  108.  
  109. render_page(page)
  110.  
  111. }
  112.  
  113. }
  114.  
  115. func main() {
  116.  
  117. fmt.Println("wow")
  118.  
  119. http.Handle("/resources/", http.StripPrefix("/resources/", http.FileServer(http.Dir("resources"))))
  120.  
  121. db, err := db_connect()
  122.  
  123. page_list := db_count_pages(db, err)
  124.  
  125. db_query_pages(db, err, page_list)
  126.  
  127. db.Close()
  128.  
  129. http.ListenAndServe(":8080", nil)
  130.  
  131. }
Advertisement
Add Comment
Please, Sign In to add comment