go

go


第十三单元(添加功能)

<h1>beego框架实现添加功能</h1> <h1>一、定义路由</h1> <pre><code class="language-go">beego.Router("/user/form", &amp;controllers.UserController{}, "get:UserForm") beego.Router("/user/create", &amp;controllers.UserController{}, "Post:UserCreate") </code></pre> <h1>二、编写表单</h1> <pre><code class="language-go">&lt;!DOCTYPE html&gt; &lt;html lang="en"&gt; &lt;head&gt;     &lt;meta charset="UTF-8"&gt;     &lt;meta http-equiv="X-UA-Compatible" content="IE=edge"&gt;     &lt;meta name="viewport" content="width=device-width, initial-scale=1.0"&gt;     &lt;title&gt;Document&lt;/title&gt; &lt;/head&gt; &lt;body&gt;     &lt;div class="main"&gt;         &lt;form action="/user/create" method="post" enctype="multipart/form-data"&gt;             用户名 &lt;input type="text" name="name"&gt;             手机号 &lt;input type="text" name="mobile"&gt;             头像  &lt;input type="file" name="avatar"&gt;             &lt;button type="submit"&gt;提交&lt;/button&gt;         &lt;/form&gt;     &lt;/div&gt; &lt;/body&gt; &lt;/html&gt;</code></pre> <p><img src="https://www.showdoc.com.cn/server/api/attachment/visitFile?sign=20fc22db0d542ae12fba9644a6068153&amp;file=file.png" alt="" /></p> <p><img src="https://www.showdoc.com.cn/server/api/attachment/visitFile?sign=4d34128306b13855839ff1ac1114aa37&amp;file=file.png" alt="" /></p> <h1>三、控制器定义</h1> <pre><code class="language-go">package controllers import (     "beegoPro/models"     "fmt"     "github.com/astaxie/beego"     "github.com/astaxie/beego/orm" ) type UserController struct {     beego.Controller } func (u *UserController) Get() { } //表单 func (this *UserController) UserForm() {     this.TplName = "user/form.html" } //添加 func (u *UserController) UserCreate() {     name := u.GetString("name")     mobile := u.GetString("mobile")     File, FileHeader, _ := u.GetFile("avatar")     //文件夹要存在     path := "static/img/" + FileHeader.Filename     err := u.SaveToFile("avatar", path)     if err != nil {         fmt.Println(err.Error())     }     defer File.Close()     /*         (1))form 表单中,新增属性 enctype=”multipart/form-data”  ,获取请求参数 c.Input().Get(“id”)         (2.)beego提供了两个方法来处理文件上传:         GetFile(key string) (multipart.File, *multipart.FileHeader, error)  //该方法主要用于用户读取表单中的文件名 the_file,然后返回相应的信息,用户根据这些变量来处理文件上传:过滤、保存文件等         SaveToFile(fromfile, tofile string) error  //该方法是在 GetFile 的基础上实现了快速保存的功能,fromfile 是提交时候的 html 表单中的 name     */     Orm := orm.NewOrm()     //结构体对象     user := models.User{}     //结构体赋值     user.Name = name     user.Mobile = mobile     user.Avatar = path     //插入     Orm.Insert(&amp;user)     if err != nil {         beego.Info("插入失败", err)         return     }     //u.Ctx.WriteString("添加成功")     url := "http://127.0.0.1:8080/user/show"     u.Ctx.Redirect(302, url) }</code></pre>

页面列表

ITEM_HTML