当前位置: 首页 > news >正文

wordpress 站点换域名百色建设厅网站

wordpress 站点换域名,百色建设厅网站,wordpress文章定时发布,网站建设需要的模块一.Gin 介绍Gin 是一个 Go (Golang) 编写的轻量级 http web 框架#xff0c;运行速度非常快#xff0c;如果你是性能和高效的追求者#xff0c;推荐你使用 Gin 框架.Gin 最擅长的就是 Api 接口的高并发#xff0c;如果项目的规模不大#xff0c;业务相对简单#xff0c;这…一.Gin 介绍Gin 是一个 Go (Golang) 编写的轻量级 http web 框架运行速度非常快如果你是性能和高效的追求者推荐你使用 Gin 框架.Gin 最擅长的就是 Api 接口的高并发如果项目的规模不大业务相对简单这个时候也推荐使用 Gin.当某个接口的性能遭到较大挑战的时候这个还是可以考虑使用 Gin 重写接口.Gin 也是一个流行的 golang Web 框架Github Strat 量已经超过了 50k.Gin 的官网https://gin-gonic.com/zh-cn/Gin Github 地址https://github.com/gin-gonic/gin二.Gin 环境搭建要安装 Gin 软件包需要先安装 Go 并设置 Go 工作区下载并安装 gingo get -u github.com/gin-gonic/gin由于网络原因国内部分用户可能没法直接下载第三方包,go get 失败,Golang Gin中没法下载第三方包解决办法如下://打开终端并执行 go env -w GO111MODULEon go env -w GOPROXYhttps://goproxy.cn,direct2.将 gin 引入到代码中import github.com/gin-gonic/gin3. 如果使用诸如 http.StatusOK 之类的常量则需要引入 net/http 包import net/http4.新建main.go配置路由package mainimport (github.com/gin-gonic/ginnet/http )func main() { // 创建gin的默认路由引擎 r : gin.Default() // 配置路由 r.GET(/, func(c *gin.Context) {c.JSON(200, gin.H{ // c.JSON返回 JSON 格式的数据message: Hello world!, })})// 浏览器访问请求127.0.0.1:8080/ping路由时,调用回调函数 r.GET(/ping, func(c *gin.Context) {//浏览器输出//c.JSON(200, gin.H{// message: pong,//})c.String(http.StatusOK, 值:%v, 你好)})//监听并在 0.0.0.0:8080 上启动服务(启动一个web服务) r.Run() // 监听并在 0.0.0.0:8000 上启动服务(启动一个web服务) //r.Run(8000) }5.运行项目go run main.go6.要改变默认启动的端口r.Run(:9000)三.golang程序的热加载所谓热加载就是当对代码进行修改时程序能够自动重新加载并执行这在开发中是非常便利的可以快速进行代码测试省去了每次手动重新编译,beego 中可以使用官方给提供bee工具来热加载项目但是 gin 中并没有官方提供的热加载工具这个时候要实现热加载就可以借助第三方的工具工具 1推荐https://github.com/gravityblast/fresh//进入终端执行 go get github.com/pilu/fresh //然后运行命令 fresh//或者进入终端执行 go install github.com/pilu/freshlatest //然后运行命令 fresh工具 2https://github.com/codegangsta/gin//进入终端执行 go get -u github.com/codegangsta/gin //然后运行命令 gin run main.go四.Gin框架中的路由1.路由概述路由Routing是由一个 URI或者叫路径和一个特定的 HTTP 方法GET、POST 等组成的涉及到应用如何响应客户端对某个网站节点的访问,RESTful API 是目前比较成熟的一套互联网应用程序的 API 设计理论所以在设计路由的时候建议参考 RESTful API 指南,在 RESTful 架构中每个网址代表一种资源不同的请求方式表示执行不同的操作GETSELECT从服务器取出资源一项或多项POSTCREATE在服务器新建一个资源PUTUPDATE在服务器更新资源客户端提供改变后的完整资源DELETEDELETE从服务器删除资源简单的路由配置当用 GET 请求访问一个网址的时候r.GET(网址, func(c *gin.Context) {c.String(200, Get) })当用 POST 访问一个网址的时候r.POST(网址, func(c *gin.Context) {c.String(200, POST) })当用 PUT 访问一个网址的时候r.PUT(网址, func(c *gin.Context) {c.String(200, PUT) })当用 DELETE 访问一个网址的时候r.DELETE(网址, func(c *gin.Context) {c.String(200, DELETE) })路由里面获取 Get 传值// 域名/news?aid20 r.GET(/news, func(c *gin.Context) {aid : c.Query(aid)c.String(200, aid%s, aid) })动态路由// 域名/user/20 r.GET(/user/:uid, func(c *gin.Context) {uid : c.Param(uid)c.String(200, userID%s, uid) })完整的代码案例如下:package mainimport (_ fmtgithub.com/gin-gonic/ginnet/http )func main() {r : gin.Default() // 创建gin的默认路由引擎//配置路由// 浏览器访问请求127.0.0.1:8080/ping路由时,调用回调函数r.GET(/ping, func(c *gin.Context) {//浏览器输出//c.JSON(200, gin.H{// message: pong,//})c.String(http.StatusOK, 值:%v, 你好)})r.GET(/news, func(c *gin.Context) {//使用http.StatusOK状态码c.String(http.StatusOK, 新闻页11面)})r.POST(/add, func(c *gin.Context) {c.String(200, 这是一个POST请求,主要用于增加数据)})r.PUT(/edit, func(c *gin.Context) {c.String(200, 这是一个PUT请求,主要用于修改数据)})r.DELETE(/delete, func(c *gin.Context) {c.String(200, 这是一个DELETE请求,主要用于增删除数据)})r.Run() // 监听并在 0.0.0.0:8080 上启动服务(启动一个web服务) }3.c.String() c.JSON() c.JSONP() c.XML() c.HTML()返回一个字符串r.GET(/news, func(c *gin.Context) {aid : c.Query(aid)c.String(200, aid%s, aid) })返回一个 JSON 数据    //方法一:自己拼接JSONr.GET(/json, func(c *gin.Context) {//返回json数据,使用 map[string]interface//c.JSON(返回的状态码, 任意类型的数据(如:map,struct,...)c.JSON(200, map[string]interface{}{success: true,msg: 你好,})})//方法二:gin中的H函数r.GET(/json2, func(c *gin.Context) {//返回json数据,使用gin中的H函数, gin.H 是 map[string]interface{}的缩写c.JSON(200, gin.H{success: true,msg: 你好gin,})})//方法三:使用结构体r.GET(/json3, func(c *gin.Context) {//实例化一个结构体a : Article{Title: 标题,Desc: 说明,Content: 内容,}c.JSON(200, a)})JSOPN: jsonp请求 主要用来解决跨域问题    //jsonp请求 主要用来解决跨域问题//http://127.0.0.1:8080/jsonp?callbackcall//call({title:标题-jsonp,desc:说明-jsonp,content:内容-jsonp});r.GET(/jsonp, func(c *gin.Context) {//实例化一个结构体a : Article{Title: 标题-jsonp,Desc: 说明-jsonp,Content: 内容-jsonp,}c.JSONP(200, a)})返回 XML 数据    //方法一:使用gin.H返回r.GET(/xml, func(c *gin.Context) {c.XML(http.StatusOK, gin.H{success: true,msg: 成功xml,})})//方法二:使用结构体r.GET(/xmlStruct, func(c *gin.Context) {//实例化一个结构体a : Article{Title: 标题-xmlStruct,Desc: 说明-xmlStruct,Content: 内容-xmlStruct,}c.XML(200, a)})返回HTML数据   //初始化路由r : gin.Default()//加载templates文件中所有模板文件,以便后续c.HTML()渲染文件时使用r.LoadHTMLGlob(templates/*)r.GET(/news, func(c *gin.Context) {//使用模板文件渲染HTML文件//前提: r.LoadHTMLGlob(templates/*)//HTML(状态码, 要渲染的文件名, 加载的参数)c.HTML(http.StatusOK, news.html, gin.H{title: 我是一个news,})})完整代码案例如下:package mainimport (github.com/gin-gonic/ginnet/http )type Article struct {Title string json:titleDesc string json:descContent string json:content }func main() {//初始化路由r : gin.Default()//加载templates文件中所有模板文件,以便后续c.HTML()渲染文件时使用r.LoadHTMLGlob(templates/*)//配置路由r.GET(/, func(c *gin.Context) {c.String(200, 首页)})r.GET(/json, func(c *gin.Context) {//返回json数据,使用 map[string]interface//c.JSON(返回的状态码, 任意类型的数据(如:map,struct,...)c.JSON(200, map[string]interface{}{success: true,msg: 你好,})})r.GET(/json2, func(c *gin.Context) {//返回json数据,使用gin中的H函数c.JSON(200, gin.H{success: true,msg: 你好gin,})})r.GET(/json3, func(c *gin.Context) {//实例化一个结构体a : Article{Title: 标题,Desc: 说明,Content: 内容,}c.JSON(200, a)})//jsonp请求 主要用来解决跨域问题//http://127.0.0.1:8080/jsonp?callbackcall//call({title:标题-jsonp,desc:说明-jsonp,content:内容-jsonp});r.GET(/jsonp, func(c *gin.Context) {//实例化一个结构体a : Article{Title: 标题-jsonp,Desc: 说明-jsonp,Content: 内容-jsonp,}c.JSONP(200, a)})r.GET(/xml, func(c *gin.Context) {c.XML(http.StatusOK, gin.H{success: true,msg: 成功xml,})})r.GET(/news, func(c *gin.Context) {//使用模板文件渲染HTML文件//前提: r.LoadHTMLGlob(templates/*)//HTML(状态码, 要渲染的文件名, 加载的参数)c.HTML(http.StatusOK, news.html, gin.H{title: 我是一个news,})})r.GET(/goods, func(c *gin.Context) {//使用模板文件渲染HTML文件//前提: r.LoadHTMLGlob(templates/*)//HTML(状态码, 要渲染的文件名, 加载的参数)c.HTML(http.StatusOK, goods.html, gin.H{title: 我是一个goods,price: 12.99,})})r.Run() // 启动一个web服务 }[下一节][golang gin框架] 2.Gin HTML模板渲染以及模板语法,自定义模板函数,静态文件服务
http://www.w-s-a.com/news/950613/

相关文章:

  • 化妆品网站建设网站惠州网站关键字优化
  • 保定网站制作企业下载天眼查企业查询官网
  • 中山企业网站建设公司制作一个景点的网站
  • 连云港集团网站建设株洲建设网站
  • 做运动鞋评价的网站南山做网站联系电话
  • 网站开发公众号开发海南做公司网站
  • 论企业网站建设的必要性微信小程序做一个多少钱
  • 网站制作价格是多少元上海市中小企业服务中心
  • 网站建设管理人员济宁网站建设top
  • 桂林网站建设桂林网站的元素有哪些
  • 广东网站开发推荐网页制作个人简历模板教程
  • e建网保定百度seo公司
  • 网站建设中html代码网络培训课堂app
  • 无锡做网站seo自己做的网站如何上传网上
  • 园林景观网站模板小白怎么做跨境电商
  • 找第三方做网站 需要注意企业网站带数据库
  • 北京南站到北京站flash网站制作单选框和复选框ui组件
  • 网站建设核电集团网站设计案例
  • 宝塔做的网站能不能访问上海的广告公司网站建设
  • 网站会员系统方案新能源网站建设哪家好
  • 全球网站域名域名被墙查询
  • 做期货看资讯什么网站好哈尔滨网站设计联系方式
  • 建站宝盒免费下载上海网论坛网址
  • 国内最有趣的25个网站推广流程
  • 红河做网站抖音小程序怎么挂到抖音上
  • 高度重视机关门户网站建设外包
  • 网站里面送礼物要钱怎么做代码网站开发怎么对接客户
  • 泰州网站制作策划如何做网站需求
  • 门户网站优化报价软件技术公司
  • 怎样换网站logo公司名字大全集免费