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

网络型网站分为wordpress换域名教程

网络型网站分为,wordpress换域名教程,中核二三公司最新招聘,宝安沙井房价1. 什么是Gin框架 Gin框架#xff1a;是一个由 Golang 语言开发的 web 框架#xff0c;能够极大提高开发 web 应用的效率#xff01; 1.1 什么是web框架 web框架体系图#xff08;前后端不分离#xff09;如下图所示#xff1a; 从上图中我们可以发现一个Web框架最重要…1. 什么是Gin框架 Gin框架是一个由 Golang 语言开发的 web 框架能够极大提高开发 web 应用的效率 1.1 什么是web框架 web框架体系图前后端不分离如下图所示 从上图中我们可以发现一个Web框架最重要的一些组成部分 HTTP解析/封装系统解析HTTP请求以及将响应构造为HTTP请求等任务交由web框架来完成路由系统将一个请求路由给某一个指定的处理器函数逻辑处理系统是后端人员需要关注的重点区域编写具体业务逻辑以及链接数据库模板引擎前后端不分离将数据嵌入到HTML模板中构建动态页面 简单来说web框架将一些繁琐且与业务逻辑无关的部分封装起来供开发者使用这样开发人员只需要关注业务逻辑层的实现 1.2 web框架两种架构模式 常见的 web 架构模式有两种 前后端不分离前后端分离 上面已经介绍了前后端不分离的架构体系图下图是前后端分离的架构图 可以看出主要区别在于后端没有了模板引擎意味着HTML页面、图片等static静态资源全部都在前端服务器部署如nginx后端服务器只负责编写接口进行业务逻辑处理然后将前端所需的数据暴露成接口返回不和页面打任何交道 2. Gin框架 2.1 Gin框架如何安装 在Go 1.11之后引入了包管理机制我们就可以使用go mod tidy一键将代码中所需导入的包从远程服务器下载到本地 package mainimport github.com/gin-gonic/ginfunc main() {// 获取引擎对象r : gin.Default()// 设置路由r.GET(/hello, func(c *gin.Context) {c.String(200, Hello Gin)})// 启动r.Run(:8080) }编写完上述代码以后在控制台输入以下命令 go mod init gin_first包管理初始化go mod tidy下载所需依赖 看到上述信息就表明 gin 框架已经引入完毕可以正式编写代码啦~ 2.2 Gin框架的路由系统 2.2.1 基本使用 其实在 2.1 节我们已经初步使用过路由系统了 // 设置路由 r.GET(/hello, func(c *gin.Context) {c.String(200, hello gin) })基本语法r.操作方法(url, 处理器函数) 操作方法引擎对象基本支持所有的HTTP请求方法比如GET、POST、PUT、PATCH、DELETE、HEAD、OPTIONS以及Any任何请求、NoRoute(没有请求对应上时访问)url表示请求对应的路径处理器函数表示请求路径为/hello时映射到该处理器函数进行执行 现在我们通过浏览器使用GET请求访问路径http://localhost:8080/hello 2.2.2 路由分组 有时候我们希望对一个 url 路径做更统一化的管理比如/user/login和/user/register实际上都是在/user路径下的子路由这个时候就需要引入 路由分组 基本语法子路由对象 : r.Group(根路由) package mainimport github.com/gin-gonic/ginfunc main() {// 获取引擎对象r : gin.Default()// 设置根路由userRouter : r.Group(/user){userRouter.GET(/login, func(ctx *gin.Context) {ctx.String(200, /user/login)})userRouter.GET(/register, func(ctx *gin.Context) {ctx.String(200, /user/register)})}// 启动r.Run(:8080) }2.3 Gin框架获取参数 2.3.1 获取基本信息 2.3.1.1 获取请求方法 比如在Any请求内部想要知道具体请求方法可以使用 基本语法var method string ctx.Request.Method package mainimport (fmtgithub.com/gin-gonic/gin )func handleFunc(ctx *gin.Context) {// 获取请求方法method : ctx.Request.Methodfmt.Println(请求方法是: method)ctx.String(200, request ok) }func main() {// 获取引擎对象r : gin.Default()// 设置路由r.Any(/method, handleFunc)// 启动r.Run(:8080) } 代码运行结果 2.3.1.2 获取请求URL 基本语法var url string ctx.Request.URL package mainimport (fmtgithub.com/gin-gonic/gin )func handleFunc(ctx *gin.Context) {// 获取请求URLvar url string ctx.Request.URL.String()fmt.Println(请求URL是: url)ctx.String(200, request ok) }func main() {// 获取引擎对象r : gin.Default()// 设置路由r.GET(/url, handleFunc)// 启动r.Run(:8080) } 代码运行结果 2.3.1.3 获取远程IP地址 基本语法 方式一var remoteAddr string ctx.Request.RemoteAddr包含端口方式二var remoteAddr string ctx.ClientIP()不包含端口 package mainimport (fmtgithub.com/gin-gonic/gin )func handleFunc1(ctx *gin.Context) {// 获取远程ipvar addr string ctx.Request.RemoteAddrfmt.Println(远程ip:, addr)ctx.String(200, request ok) }func handleFunc2(ctx *gin.Context) {// 获取远程ipvar addr string ctx.ClientIP()fmt.Println(远程ip:, addr)ctx.String(200, request ok) }func main() {// 获取引擎对象r : gin.Default()// 设置路由r.GET(/addr1, handleFunc1)r.GET(/addr2, handleFunc2)// 启动r.Run(:8080) } 代码运行结果 2.3.1.4 获取请求头信息 本语法var headerInfo string ctx.GetHeader(键) package mainimport (fmtgithub.com/gin-gonic/gin )func handleFunc(ctx *gin.Context) {// 获取指定请求头var userAgent string ctx.GetHeader(User-Agent)fmt.Println(Content-Type:, userAgent)ctx.String(200, request ok) }func main() {// 获取引擎对象r : gin.Default()// 设置路由r.GET(/header, handleFunc)// 启动r.Run(:8080) } 代码运行结果 2.3.2 获取请求数据 2.3.2.1 获取查询字符串内容 通常来说使用 GET 请求发送请求都会将数据放置在查询字符串位置 方式一 var content string ctx.Query(键)方式二var content string ctx.DefaultQuery(键, 缺省值)如果不存在则使用默认值填充方式三value, ok : ctx.GetQuery(键)可以通过ok判断是否存在键 package mainimport (fmtgithub.com/gin-gonic/gin )func handleFunc1(ctx *gin.Context) {// 获取查询字符串数据var username ctx.Query(username)var pwd ctx.Query(pwd)fmt.Println(username:, username)fmt.Println(pwd:, pwd)ctx.String(200, request ok) }func handleFunc2(ctx *gin.Context) {// 获取查询字符串数据var user ctx.DefaultQuery(user, wjj)fmt.Println(user:, user)ctx.String(200, request ok) }func handleFunc3(ctx *gin.Context) {// 获取查询字符串数据user, exists : ctx.GetQuery(user)if exists {fmt.Println(键存在值为:, user)} else {fmt.Println(键不存在!)}ctx.String(200, request ok) }func main() {// 获取引擎对象r : gin.Default()// 设置路由r.GET(/queryString1, handleFunc1)r.GET(/queryString2, handleFunc2)r.GET(/queryString3, handleFunc3)// 启动r.Run(:8080) } 程序运行结果 2.3.2.2 获取表单数据 前端使用 form表单 提交发送请求此时Content-Type为x-www-form-urlencoded可以使用PostForm获取表单内容 方式一 var content string ctx.PostForm(键)方式二var content string ctx.DefaultPostForm(键, 缺省值)如果不存在则使用默认值填充方式三value, ok : ctx.GetPostForm(键)可以通过ok判断是否存在键 package mainimport (fmtgithub.com/gin-gonic/gin )func handleFunc1(ctx *gin.Context) {// 获取查询字符串数据var username ctx.PostForm(username)var pwd ctx.PostForm(pwd)fmt.Println(username:, username)fmt.Println(pwd:, pwd)ctx.String(200, request ok) }func handleFunc2(ctx *gin.Context) {// 获取查询字符串数据var user ctx.DefaultPostForm(user, wjj)fmt.Println(user:, user)ctx.String(200, request ok) }func handleFunc3(ctx *gin.Context) {// 获取查询字符串数据user, exists : ctx.GetPostForm(user)if exists {fmt.Println(键存在值为:, user)} else {fmt.Println(键不存在!)}ctx.String(200, request ok) }func main() {// 获取引擎对象r : gin.Default()// 加载HTML资源r.LoadHTMLGlob(templates/*)// 设置路由r.GET(/, func(ctx *gin.Context) {ctx.HTML(200, index.html, nil)})r.POST(/postform1, handleFunc1)r.POST(/postform2, handleFunc2)r.POST(/postform3, handleFunc3)// 启动r.Run(:8080) } 程序运行结果 2.3.2.3 获取JSON请求体数据 Go语言没有提供类似于 PostForm、Query 这样的API直接获取JSON数据但是Go提供了ShouldBind函数可以将 json 类型的数据自动映射到指定的结构体对象上 语法格式ctx.ShouldBind(结构体对象) package mainimport (fmtgithub.com/gin-gonic/gin )type Student struct {Username string json:usernamePassword string json:password }func main() {// 获取引擎对象r : gin.Default()// 设置路由r.POST(/, func(ctx *gin.Context) {// 使用ShouldBind函数获取JSON数据var student Studenterr : ctx.ShouldBind(student)if err ! nil {fmt.Println(err)ctx.String(500, 解析错误)} else {fmt.Println(student)ctx.String(200, request ok)}})// 启动r.Run(:8080) } 程序运行结果 2.4 Gin框架返回响应 2.4.1 返回HTML页面 语法格式ctx.HTML(响应状态码, 页面, 数据对象) 响应状态码对应的HTTP状态码页面具体页面路径数据对象与模板引擎相关后续章节介绍 package mainimport github.com/gin-gonic/ginfunc main() {// 获取引擎对象r : gin.Default()// 加载模板文件r.LoadHTMLGlob(templates/*)// 设置路由r.GET(/, func(ctx *gin.Context) {// 返回首页ctx.HTML(202, index.html, nil)})// 启动r.Run(:8080) } 程序运行结果 2.4.2 返回String类型 语法格式ctx.String(响应状态码, 格式化字符串) 响应状态码对应的HTTP状态码格式化字符串具体返回的文本内容 package mainimport github.com/gin-gonic/ginfunc main() {// 获取引擎对象r : gin.Default()// 设置路由r.GET(/, func(ctx *gin.Context) {// 返回sring类型ctx.String(200, string 类型)})// 启动r.Run(:8080) } 程序运行结果 2.4.3 返回JSON类型 语法格式ctx.JSON(响应状态码, gin.H对象) 响应状态码对应的HTTP状态码gin.H对象具体返回JSON格式对象 package mainimport github.com/gin-gonic/ginfunc main() {// 获取引擎对象r : gin.Default()// 设置路由r.GET(/, func(ctx *gin.Context) {// 返回json类型ctx.JSON(200, gin.H{name: wjj,age: 21,})})// 启动r.Run(:8080) } 程序运行结果 2.4.4 返回XML类型 语法格式ctx.XML(响应状态码, gin.H对象) 响应状态码对应的HTTP状态码gin.H对象具体返回XML格式对象 package mainimport github.com/gin-gonic/ginfunc main() {// 获取引擎对象r : gin.Default()// 设置路由r.GET(/, func(ctx *gin.Context) {ctx.XML(200, gin.H{name: wjj,age: 21,})})// 启动r.Run(:8080) } 程序运行结果
http://www.ho-use.cn/article/10817383.html

相关文章:

  • 海西州商城网站建设软件优化网站
  • 山东网站建设公司电话网站模板带后台下载
  • 手工制作网站前端的网站重构怎么做
  • 高质量网站内容建设标准泉州做网站seo
  • 石家庄做网站建设的公司排名网络设计概念
  • 苏州门户网站郑州影楼网站建设
  • 产品经理如何做p2p网站改版网站制作平台公司
  • 如何做配音网站公司注册费用多少
  • 需要郑州网站建设淘宝指数在线查询
  • 安康网站建设公司价格南宁百度seo公司
  • 如何开网站详细步骤平面设计培训费用一般是多少
  • 网站培训机构有哪些金昌市建设工程质量监督站网站
  • 户县做网站建立wordpress显示数据库错误
  • php与mysql网站开发...公众平台登录
  • 中国建设监理协会网站继续教育兼职网站开发
  • 网站的主题定位怎么做网站的跳转
  • 专业的龙岗网站建设网站 开发 价格
  • 公司网站要多大空间温州优化售后
  • 怎么一个网站做的竞价今天长沙做
  • 怎么在搜狐快站上做网站个人简历免费模板
  • 做企业网站需要资质吗北京城建亚泰建设集团有限公司网站首页
  • 专业定制网站建设哪里有wordpress 文章缩进
  • 网站开发教程pdf用来制作网页的软件是
  • 如何做网站跳转登入中国怎么进fiverr网站做任务
  • 怎么做乞讨网站电影网站怎么做优化
  • 网站首页锚文本东莞房价2021
  • 手机网站建设报价多少wordpress中上传图片
  • 做跨境电商如何自建站wordpress的缺点
  • 站长推广网inews wordpress
  • 网站的关键词在哪里设置中山做网站的