package main
import (
// "fmt"
"io"
"log"
"net/http"
"text/template"
"time"
"database/sql"
"/ziutek/mymysql/godrv"
)
// Message structure
type Liuyan struct {
Id int
Name string
Content string
Time int
}
// Show message time
func (l Liuyan) ShowTime() string {
t := (int64(), 0)
return ("2006-01-02 15:04:05")
}
func main() {
("SET NAMES utf8")
// Connect to the database
db, err := ("mymysql", "tcp:127.0.0.1:3306*go/root/123456")
if err != nil {
panic(err)
}
defer ()
// Prepare the template
tpl, err := ("liuyanbook").Parse(html)
if err != nil {
panic(err)
}
// Show the message page /
requestList := func(w , req *) {
// Query data
rows, err := ("select * from liuyan")
if err != nil {
(err)
}
defer ()
// Get data
lys := []Liuyan{}
for () {
ly := Liuyan{}
err := (&, &, &, &)
if nil != err {
(err)
}
lys = append(lys, ly)
}
// Display data
err = (w, "list", lys)
if err != nil {
(err)
}
}
// Message page /liuyan
requestLiuyan := func(w , req *) {
err := ()
if err != nil{
(err)
}
if "POST" == {
if len(["name"]) < 1 {
(w, "parameter error!\n")
return
}
if len(["content"]) < 1 {
(w, "parameter error!\n")
return
}
name := (("name"))
content := (("content"))
// SQL statement
sql, err := ("insert into liuyan(name, content, time) values(?, ?, ?)")
if err != nil {
(err)
}
defer ()
// sql parameters and execute
_, err = (name, content, ().Unix())
if err != nil {
(err)
}
// Jump
().Add("Location", "/")
(302)
// Prompt message
(w, "Submitted successfully!\n")
return
}
err = (w, "liuyan", nil)
if err != nil {
(err)
}
}
("/", requestList)
("/liuyan", requestLiuyan)
err = (":12345", nil)
if err != nil {
("ListenAndServe: ", err)
}
}
// Web page template
var html string = `{{define "list"}}{{/* Message list page */}}<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<p><a href="/liuyan">Leave me a message</a></p>
<table>
{{range .}}
<tr>
<td>{{.Id}}</td><td>{{.Name}}</td><td>{{.Content}}</td><td>{{.ShowTime}}</td>
</tr>
{{end}}
</table>
</body>
</html>{{end}}
{{define "liuyan"}}{{/* Post a message page */}}<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<form method="post">
Name:<input type="text" name="name" /><br>
Content:<input type="text" name="content" /><br>
<input type="submit" value="submit" />
</form>
</body>
</html>{{end}}
import (
// "fmt"
"io"
"log"
"net/http"
"text/template"
"time"
"database/sql"
"/ziutek/mymysql/godrv"
)
// Message structure
type Liuyan struct {
Id int
Name string
Content string
Time int
}
// Show message time
func (l Liuyan) ShowTime() string {
t := (int64(), 0)
return ("2006-01-02 15:04:05")
}
func main() {
("SET NAMES utf8")
// Connect to the database
db, err := ("mymysql", "tcp:127.0.0.1:3306*go/root/123456")
if err != nil {
panic(err)
}
defer ()
// Prepare the template
tpl, err := ("liuyanbook").Parse(html)
if err != nil {
panic(err)
}
// Show the message page /
requestList := func(w , req *) {
// Query data
rows, err := ("select * from liuyan")
if err != nil {
(err)
}
defer ()
// Get data
lys := []Liuyan{}
for () {
ly := Liuyan{}
err := (&, &, &, &)
if nil != err {
(err)
}
lys = append(lys, ly)
}
// Display data
err = (w, "list", lys)
if err != nil {
(err)
}
}
// Message page /liuyan
requestLiuyan := func(w , req *) {
err := ()
if err != nil{
(err)
}
if "POST" == {
if len(["name"]) < 1 {
(w, "parameter error!\n")
return
}
if len(["content"]) < 1 {
(w, "parameter error!\n")
return
}
name := (("name"))
content := (("content"))
// SQL statement
sql, err := ("insert into liuyan(name, content, time) values(?, ?, ?)")
if err != nil {
(err)
}
defer ()
// sql parameters and execute
_, err = (name, content, ().Unix())
if err != nil {
(err)
}
// Jump
().Add("Location", "/")
(302)
// Prompt message
(w, "Submitted successfully!\n")
return
}
err = (w, "liuyan", nil)
if err != nil {
(err)
}
}
("/", requestList)
("/liuyan", requestLiuyan)
err = (":12345", nil)
if err != nil {
("ListenAndServe: ", err)
}
}
// Web page template
var html string = `{{define "list"}}{{/* Message list page */}}<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<p><a href="/liuyan">Leave me a message</a></p>
<table>
{{range .}}
<tr>
<td>{{.Id}}</td><td>{{.Name}}</td><td>{{.Content}}</td><td>{{.ShowTime}}</td>
</tr>
{{end}}
</table>
</body>
</html>{{end}}
{{define "liuyan"}}{{/* Post a message page */}}<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<form method="post">
Name:<input type="text" name="name" /><br>
Content:<input type="text" name="content" /><br>
<input type="submit" value="submit" />
</form>
</body>
</html>{{end}}