7
Beego 框架学习笔记 04 | 动态路由、路由伪静态、正则路由、路由跳
source link: https://studygolang.com/articles/32407
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
一、动态路由
api.go:
package controllers
import (
"github.com/astaxie/beego"
)
type ApiController struct {
beego.Controller
}
// http://localhost:8080/api/1
func (c *ApiController) Get() {=(res) [val*2**inx for inx, val in zip(range(len(t)), t)]
res = res + sum(item)
return in
// 获取动态路由的值
id := c.Ctx.Input.Param(":id")
c.Ctx.WriteString("api接口--" + id)
}
router.go:
package routers
import (
"beegodemo02/controllers"
"github.com/astaxie/beego"
)
func init() {
beego.Router("/", &controllers.MainController{})
// http://localhost:8080/api/1
beego.Router("/api/:id", &controllers.ApiController{})
}
image
二、路由伪静态
cms.go:
package controllers
import (
"github.com/astaxie/beego"
)
type CmsController struct {
beego.Controller
}
// 路由伪静态
// http://localhost:8080/cms_1.html
func (c *CmsController) Get() {
cmsId := c.Ctx.Input.Param(":id")
c.Ctx.WriteString("CMS详情--" + cmsId)
}
router.go:
package routers
import (
"beegodemo02/controllers"
"github.com/astaxie/beego"
)
func init() {
beego.Router("/", &controllers.MainController{})
// http://localhost:8080/api/1
beego.Router("/api/:id", &controllers.ApiController{})
// http://localhost:8080/cms_1.html
beego.Router("/cms_:id([0-9]+).html", &controllers.CmsController{})
}
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6m1nUYdO-1608128103434)(https://cdn.jsdelivr.net/gh/Wonz5130/My-Private-ImgHost/img/Snipaste_2020-11-18_17-22-12.png)]
三、路由跳转
login.go:
package controllers
import (
"fmt"
"github.com/astaxie/beego"
)
type LoginController struct {
beego.Controller
}
// 路由伪静态
// http://localhost:8080/cms_1.html
func (c *LoginController) Get() {
c.TplName = "login.html"
}
func (c *LoginController) DoLogin() {
username := c.GetString("username")
password := c.GetString("password")
fmt.Println(username, password)
// 执行跳转
c.Redirect("/", 302) // 302 表示重定向
// c.Redirect("/cms_1.html", 302) // 302 表示重定向
}
router.go:
package routers
import (
"beegodemo02/controllers"
"github.com/astaxie/beego"
)
func init() {
beego.Router("/", &controllers.MainController{})
// http://localhost:8080/api/1
beego.Router("/api/:id", &controllers.ApiController{})
// http://localhost:8080/cms_1.html
beego.Router("/cms_:id([0-9]+).html", &controllers.CmsController{})
beego.Router("/login", &controllers.LoginController{})
beego.Router("/doLogin", &controllers.LoginController{}, "post:DoLogin")
}
login.html:
<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/html">
<head>
<meta charset="UTF-8">
<title>登录页面</title>
</head>
<body>
<form action="/doLogin" method="post">
用户名: <input type="text" name="username"> <br><br>
密 码: <input type="text" name="password"> <br><br>
<input type="submit" value="登录">
</form>
</body>
</html>
image
输完用户名和密码点击登录之后,会跳转到 localhost:8080
:
image
控制台有输出:
image
四、参考教程
有疑问加站长微信联系(非本文作者)
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK