beego自定义404、401、403、500、503等页面

beego 框架默认支持 404、401、403、500、503 这几种错误的处理。用户可以自定义相应的错误处理,从1.4.3版本开始,支持Controller方式定义Error错误处理函数:

step1;在main方法在加入

beego.ErrorController(&controllers.ErrorController{})

在这里插入图片描述
step2:新建一个Error控制器

 package controllers

import "github.com/astaxie/beego"
/**
  该控制器处理页面错误请求
 */
type ErrorController struct {
	beego.Controller
}
func (c *ErrorController) Error401() {
	c.Data["content"] = "未经授权,请求要求验证身份"
	c.TplName="error/401.tpl"
}
func (c *ErrorController) Error403() {
	c.Data["content"] = "服务器拒绝请求"
	c.TplName="error/403.tpl"
}
func (c *ErrorController) Error404() {
	c.Data["content"] = "很抱歉您访问的地址或者方法不存在"
	c.TplName="error/404.tpl"
}

func (c *ErrorController) Error500() {
	c.Data["content"] = "server error"
	c.TplName = "error/500.tpl"
}
func (c *ErrorController) Error503() {
	c.Data["content"] = "服务器目前无法使用(由于超载或停机维护)"
	c.TplName = "error/503.tpl"
}

step3: 在views新建一个error目录,并在目录添加对应文件,这里以404页面为主

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>404</title>
      <style type="text/css">
          body.error_page
          {
              background-color: #00629f;
              background-image: url(https://lxxybucket.oss-cn-hangzhou.aliyuncs.com/EXILE/error.png);
              background-position: center top;
              background-repeat: no-repeat;
          }
          #error
          {
              color: #FFF;
              width: 100%;
              text-align: center;
              margin: 22% auto;
          }
          #error span,#error a
          {
              color:Yellow;
          }
          #error a:hover
          {
              color:#FFF;
              text-decoration: underline;
              cursor: pointer;
          }
         .error_number{
             font-size: 8rem;
         }
      </style>

</head>
<body class="error_page">
<h1 id="error">
    <span>{{.content}}</span>

</h1>
</body>
</html>
<script>
    window.onload=function () {
        $width=document.body.clientWidth;
        if($width>1024){
            document.getElementById("error").style.margin="22% auto";
        }else{
            document.getElementById("error").style.margin="42% auto";
        }
    }
</script>

step4:实际运行beego项目进行访问测试
在这里插入图片描述
大功告成

要使用 beego 框架来实现登陆管理页面,你可以按照以下步骤进行操作: 1. 创建一个名为 controllers 的文件夹,用于存放控制器代码。 2. 在 controllers 文件夹下创建一个名为 login.go 的文件,用于编写登陆相关的控制器代码。 3. 在 login.go 文件中添加如下代码: ```go package controllers import ( "github.com/astaxie/beego" ) type LoginController struct { beego.Controller } func (c *LoginController) Get() { c.TplName = "login.tpl" } func (c *LoginController) Post() { username := c.GetString("username") password := c.GetString("password") // 验证用户名和密码是否正确,可以在这里调用数据库或其他 API 进行验证 if username == "admin" && password == "admin" { c.Redirect("/admin", 302) } else { c.Redirect("/login", 302) } } ``` 4. 创建一个名为 views 的文件夹,用于存放页面模板。 5. 在 views 文件夹下创建一个名为 login.tpl 的文件,用于编写登陆页面模板代码。 ```html <!DOCTYPE html> <html> <head> <title>Login</title> </head> <body> <form action="/login" method="post"> <label for="username">Username:</label> <input type="text" name="username" id="username"><br> <label for="password">Password:</label> <input type="password" name="password" id="password"><br> <input type="submit" value="Login"> </form> </body> </html> ``` 6. 在 main.go 文件中添加如下代码: ```go package main import ( "github.com/astaxie/beego" "your-app/controllers" ) func main() { beego.Router("/", &controllers.LoginController{}) beego.Router("/login", &controllers.LoginController{}) beego.Router("/admin", &controllers.AdminController{}) beego.Run() } ``` 7. 创建一个名为 admin.go 的文件,用于编写管理页面控制器代码。 ```go package controllers import ( "github.com/astaxie/beego" ) type AdminController struct { beego.Controller } func (c *AdminController) Get() { c.TplName = "admin.tpl" } ``` 8. 在 views 文件夹下创建一个名为 admin.tpl 的文件,用于编写管理页面模板代码。 ```html <!DOCTYPE html> <html> <head> <title>Admin</title> </head> <body> <h1>Welcome to admin page!</h1> </body> </html> ``` 9. 运行应用程序,访问 http://localhost:8080/login 可以看到登陆页面,输入用户名和密码后将会被重定向到 http://localhost:8080/admin 管理页面
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值