Go语言web框架:Seago
jopen
11年前
Seago是golang实现的简单的web框架,router包来自web.go和martini
功能
-
支持RESTful
-
支持Session
-
支持Cache
-
支持Middleware
package main import ( "fmt" "github.com/seago/seago" "github.com/seago/seago/context" . "github.com/seago/seago/middleware" "io" "os" "strconv" ) func main() { DefaultMiddleware.Add("test", "test middleware") app := seago.NewSeago(":8080") //http://localhost:8080/test/Miller app.Get("/test/:test_get", func(ctx *context.Context, test string) string { i := ctx.GetParam("id_get").Int() return "hello " + test + " " + strconv.Itoa(i) + " " + DefaultMiddleware.Get("test").(string) }) app.Post("/test", func(ctx *context.Context) string { test := ctx.GetParam("test_post").String() i := ctx.GetParam("id_post").Int() file := ctx.File["file"] f, err := file.Open() if err != nil { fmt.Println(err) } defer f.Close() fi, err := os.Create(file.Filename) if err != nil { fmt.Println(err) } _, err = io.Copy(fi, f) if err != nil { fmt.Println(err) } defer fi.Close() return "hello " + test + " " + strconv.Itoa(i) }) app.Get("/", func() string { return `<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>test file upload</title> </head> <body> <form action="http://localhost:8080/test" method="post" enctype="multipart/form-data"> test:<input type="text" name="test_post" value="" /><br /> id:<input type="text" name="id_post" value="" /><br /> <input type="file" name="file" /><br /> <input type="submit" name="submit" value="upload" /> </form> </body> </html>` }) app.Profile() app.Server.SetMaxMemory(200 << 20) app.Run() }