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

买了域名如何建立网站网店运营推广的概念

买了域名如何建立网站,网店运营推广的概念,域名注册管理中心网站,网站不收录怎么办介绍 Gin 是一个用 Go (Golang) 编写的 Web 框架。 它具有类似 martini 的 API#xff0c;性能要好得多#xff0c;多亏了 httprouter#xff0c;速度提高了 40 倍。 如果您需要性能和良好的生产力#xff0c;您一定会喜欢 Gin。 安装 go get -u github.com/gin-gonic/g…介绍 Gin 是一个用 Go (Golang) 编写的 Web 框架。 它具有类似 martini 的 API性能要好得多多亏了 httprouter速度提高了 40 倍。 如果您需要性能和良好的生产力您一定会喜欢 Gin。 安装 go get -u github.com/gin-gonic/gin 快速开始 package mainimport (github.com/gin-gonic/gin )func main() {r : gin.Default()r.GET(/ping, func(c *gin.Context) {c.JSON(200, gin.H{message: pong,})})r.Run() // 监听并在 0.0.0.0:8080 上启动服务 } 接受请求参数 公共部分 package mainimport (github.com/gin-gonic/ginnet/http )func main() {router : gin.Default()//调用方法router.Run(:8080) } get请求 获取路径上数据post一样 使用gin.Context.Query(参数名)获取 func main() {router : gin.Default()testGetUrl(router)router.Run(:8080) } func testGetUrl(router *gin.Engine) {router.GET(/getUrl, func(c *gin.Context) {// 获取参数值name : c.Query(name)age : c.Query(age)// 返回响应c.JSON(http.StatusOK, gin.H{name: name,age: age,})}) } 获取路由参数post一样 package mainimport (github.com/gin-gonic/ginionet/httpnet/urlos )func main() {router : gin.Default()testRouteParams(router)router.Run(:8080) } func testRouteParams(router *gin.Engine) {router.GET(/routeParams/:name/:age, func(c *gin.Context) {// 获取参数值name : c.Param(name)age : c.Param(age)// 返回响应c.JSON(http.StatusOK, gin.H{name: name,age: age,})}) } 获取cookiepost一样 package mainimport (github.com/gin-gonic/ginionet/httpnet/urlos )func main() {router : gin.Default()testCookies(router)router.Run(:8080) } func testCookies(router *gin.Engine) {router.GET(/cookies, func(c *gin.Context) {// 获取参数值name, _ : c.Cookie(name)age, _ : c.Cookie(age)// 返回响应c.JSON(http.StatusOK, gin.H{name: name,age: age,})}) } 获取表单参数post一样 func main() {router : gin.Default()testGetForm(router)router.Run(:8080) } func testGetForm(router *gin.Engine) {router.GET(/getForm, func(c *gin.Context) {var form User// 在这种情况下将自动选择合适的绑定if c.ShouldBind(form) nil {// 返回响应c.JSON(http.StatusOK, gin.H{name: form.Name,age: form.Age,})}}) } 获取请求头post一样 func main() {router : gin.Default()testGetHeader(router)router.Run(:8080) } func testGetHeader(router *gin.Engine) {router.GET(/getHeader, func(c *gin.Context) {// 获取参数值name : c.GetHeader(name)age : c.GetHeader(age)contentType : c.GetHeader(Content-Type)// 返回响应c.JSON(http.StatusOK, gin.H{name: name,age: age,contentType: contentType,})}) } post请求 获取请求体数据 和post表单一样  func main() {router : gin.Default()testPostForm(router)router.Run(:8080) } func testPostForm(router *gin.Engine) {router.POST(/postForm, func(c *gin.Context) {var form User// 在这种情况下将自动选择合适的绑定if c.ShouldBind(form) nil {// 返回响应c.JSON(http.StatusOK, gin.H{name: form.Name,age: form.Age,})}}) } 文件上传下载 上传单个文件 package mainimport (github.com/gin-gonic/ginnet/http )func main() {router : gin.Default()testUpload(router)router.Run(:8080) } func testUpload(router *gin.Engine) {// 为 multipart forms 设置较低的内存限制 (默认是 32 MiB)router.MaxMultipartMemory 8 20 // 8 MiBrouter.POST(/upload, func(c *gin.Context) {// 单文件file, _ : c.FormFile(file)dst : file.Filename// 上传文件至指定的完整文件路径c.SaveUploadedFile(file, dst)// 返回响应c.JSON(http.StatusOK, gin.H{name: file.Filename,})}) } 上传多个文件 package mainimport (github.com/gin-gonic/ginnet/http )func main() {router : gin.Default()testUploadMany(router)router.Run(:8080) } func testUploadMany(router *gin.Engine) {// 为 multipart forms 设置较低的内存限制 (默认是 32 MiB)router.MaxMultipartMemory 8 20 // 8 MiBrouter.POST(/uploadMany, func(c *gin.Context) {// Multipart formform, _ : c.MultipartForm()fileNames : make([]string, 0)files : form.File[fileList]for _, file : range files {// 上传文件至指定目录c.SaveUploadedFile(file, filedir/file.Filename)fileNames append(fileNames, file.Filename)}// 返回响应c.JSON(http.StatusOK, gin.H{name: fileNames,})}) } 下载文件  package mainimport (github.com/gin-gonic/ginionet/httpnet/urlos )func main() {router : gin.Default()testDownload(router)router.Run(:8080) } func testDownload(router *gin.Engine) {router.POST(/download, func(c *gin.Context) {// 获取文件路径targetFileName : 照片1.pngfilePath : filedir/ targetFileName// 检查文件是否存在_, err : os.Stat(filePath)if os.IsNotExist(err) {c.String(http.StatusNotFound, File not found)return}//中文名称会乱码导致下载失败所以需要编码name : url.QueryEscape(targetFileName)// 设置响应头指定文件名和内容类型c.Header(Content-Disposition, attachment; filenamename)c.Header(Content-Type, application/octet-stream)// 打开文件file, err : os.Open(filePath)if err ! nil {c.String(http.StatusInternalServerError, Error opening file)return}defer file.Close()// 将文件内容写入响应体_, err io.Copy(c.Writer, file)if err ! nil {c.String(http.StatusInternalServerError, Error copying file)return}}) } 由于是postman下载的没法解析为中文用浏览器下载就没问题了 日志 func main() {// 禁用控制台颜色将日志写入文件时不需要控制台颜色。gin.DisableConsoleColor()// 记录到文件。f, _ : os.Create(gin.log)gin.DefaultWriter io.MultiWriter(f)// 如果需要同时将日志写入文件和控制台请使用以下代码。// gin.DefaultWriter io.MultiWriter(f, os.Stdout)router : gin.Default()router.GET(/ping, func(c *gin.Context) {c.String(200, pong)})router.Run(:8080) } 路由组 func main() {router : gin.Default()// 简单的路由组: v1v1 : router.Group(/v1){v1.POST(/login, loginEndpoint)v1.POST(/submit, submitEndpoint)v1.POST(/read, readEndpoint)}// 简单的路由组: v2v2 : router.Group(/v2){v2.POST(/login, loginEndpoint)v2.POST(/submit, submitEndpoint)v2.POST(/read, readEndpoint)}router.Run(:8080) } 运行多个服务 package mainimport (lognet/httptimegithub.com/gin-gonic/gingolang.org/x/sync/errgroup )var (g errgroup.Group )func router01() http.Handler {e : gin.New()e.Use(gin.Recovery())e.GET(/, func(c *gin.Context) {c.JSON(http.StatusOK,gin.H{code: http.StatusOK,error: Welcome server 01,},)})return e }func router02() http.Handler {e : gin.New()e.Use(gin.Recovery())e.GET(/, func(c *gin.Context) {c.JSON(http.StatusOK,gin.H{code: http.StatusOK,error: Welcome server 02,},)})return e }func main() {server01 : http.Server{Addr: :8080,Handler: router01(),ReadTimeout: 5 * time.Second,WriteTimeout: 10 * time.Second,}server02 : http.Server{Addr: :8081,Handler: router02(),ReadTimeout: 5 * time.Second,WriteTimeout: 10 * time.Second,}g.Go(func() error {return server01.ListenAndServe()})g.Go(func() error {return server02.ListenAndServe()})if err : g.Wait(); err ! nil {log.Fatal(err)} } 重定向 HTTP 重定向很容易。 内部、外部重定向均支持。 r.GET(/test, func(c *gin.Context) {c.Redirect(http.StatusMovedPermanently, http://www.google.com/) })通过 POST 方法进行 HTTP 重定向。请参考 issue#444 r.POST(/test, func(c *gin.Context) {c.Redirect(http.StatusFound, /foo) })路由重定向使用 HandleContext r.GET(/test, func(c *gin.Context) {c.Request.URL.Path /test2r.HandleContext(c) }) r.GET(/test2, func(c *gin.Context) {c.JSON(200, gin.H{hello: world}) })
http://www.w-s-a.com/news/776415/

相关文章:

  • 网站301重定向代码wordpress 加子目录
  • 淄博网站制作优化推广asp做学生信息网站
  • 海口招商建设有限公司网站淮安哪有专业做网站的公司
  • 喀什哪有做网站的国内正规seo网络推广
  • 网站设计初步规划公司网页打不开是什么原因
  • 深圳企业网站建设推广服务php做的商城网站设计论文
  • 韩雪冬网站手机网站开发 宽度
  • 奉贤专业做网站新手怎么做企业网站
  • 做网站用哪几个端口 比较好手机号网站源码
  • 手机免费代理ip网站那个旅游网站做攻略最好
  • 西安做网站找哪家公司好苏州专业网站建设开发
  • dedecms如何做网站网站设计实施方案
  • 网站建设合约品牌设计有哪些
  • 织梦企业门户网站宝塔搭建wordpress网站
  • 网站为什么没有排名了11月将现新冠感染高峰
  • 网站开发维护专员岗位职责辽阳企业网站建设
  • 做外国订单有什么网站网站设计论文提纲
  • 商城网站建设报价方案导师让做网站
  • 清远市企业网站seo联系方式动易官方网站
  • 手机上怎么做能打开的网站一级域名和二级域名跨域
  • 网站首页效果图wordpress 在线教育
  • 电商网站开发团队广西桂林商贸旅游技工学校
  • 网站模板文件怎么下载东莞常平镇邮政编码
  • 建网站需要什么wordpress误删的后果
  • wordpress无插件实现网站地图做阿里巴巴网站店铺装修费用
  • 英文互动网站建设南宁住房和城乡建设局网站
  • 威海微网站建设乐清建网站哪家强
  • 网站和app的开发成本saas系统开发教程
  • ps切片工具做网站大气简洁网站
  • 网至普的营销型网站建设wordpress邮箱验证插件下载