杭州--11

来源:互联网 发布:北京数据分析师工资 编辑:程序博客网 时间:2024/06/02 15:47

1.GoWeb方面:

1.1func demo(w http.Responsewriter,r *http.Request){...}

func login(w http.Responsewriter,r *http.Request){...}

func main(){...}

main函数中写http.HandelFunc("/login",login)时千万别要忘记login前面的/,否则会一直指向“/”指向的方法;

main函数中写err := http.ListenAndServe(":8080",nil)时,注意函数只有一个返回值,至于第二个参数我也不知道为什么写成空值

demo函数中,如果只是想在前端展示简单的文字,可以用fmt.Fprintln(w,"hello")

login函数中,如果想在前端展示一个网页,可以用t,_ := template.ParseFiles("login.gtpl"),t.Excute(w,nil),

注意第一个函数有两个返回值,不要忘记写第二个函数。

1.2当url后面的query-string和post提交的数据相同时,会把两个值保存在一个slice中

1.3 if m,_ := regexp.MatchString("^[0-9]+$",r.Form.Get("age")); !m{return false}可以用类似regexp.MatchString的语法对表单数据进行验证

1.4NoSql表示not only sql,泛指非关系型数据库

1.5import包的时候,"_"表示不直接调用包里的函数,而是调用该包里的init(不理解。。。)

2.beego

2.1  基础路由:最简单的beego路由由url和必报函数构成

beego.Get("/",fun(ctx *context.Context){
ctx.Output.Body([]byte("hello world))
})
对于闭包函数不理解。。。

2.2  固定路由:beego.Router("/admin",&UserController) 是根据用户的请求方法,对应控制器的对应方法

自定义方法:想让get请求对应myget方法,beego.Router("/admin",&UserController,get:myget),当请求为post的时候会执行什么呢?

自动匹配:想让访问/admin/login时,访问UserController的login方法,则需要注册一下,beego.AutoController(&UserController),此时会反射到UserController的所有方法。或者用第二种方法:

先让UserController嵌入beego.Controller,然后在router.go里配置beego.Include(&UserController)

3.zcmlc

更新前端页面时,注意点:

3.1  开发服(较先进)与正式服对比,整理哪些需要改

3.2找到这些数据的controller和model,需要删除的,就在controller和model中的结构体字段与函数中的查询字段将其删除

3.3需要添加的,先看数据库中有没有多余字段或或者相似字段,有的话,在model中得到,返回到controller,然后修改前端页面的name值。如果没有,根据引用字段在数据库中添加新字段,再在model中的结构体里添加字段,修改model函数中访问数据库的语句,最后在controller中得到数据。

前者是根据数据库字段改前端,后者是根据前端字段修改数据库字段。尽量用前一种方法。

3.4注意在model函数里如果是insert之类的语句,问号要与字段数量相同,而且这个要把数据分别注入到数据库对应字段中,因为比如数据库里的表有5个字段,而我只插入3个数据。

3.5 controller中post方法的流程:根据model里的结构体声明一个变量,pr.Type = this.GetString(),对pr进行填充,然后再进入model里把数据插入,最后用this.Redirect(url)进行页面跳转


0 0
原创粉丝点击