gin

golang gin框架开启跨域

泄露秘密 提交于 2020-04-15 16:52:09
【推荐阅读】微服务还能火多久?>>> 前言 gin开启跨域,只需要添加一个全局中间件到路由器即可 gin 中间件 gin的中间件可以添加到全局, 也可以添加到单个路由上 添加到全局 r := gin.New() r.Use(gin.Logger()) r.Use(gin.Recovery()) 这里的两个中间件就是 gin.Default()帮我们初始化的两个中间件 添加到单个路由 authorized := r.Group("/") authorized.Use(AuthRequired()) gin开启跨域 gin开启跨域其实还是很简单的, 演示代码如下: package main import ( "github.com/gin-gonic/gin" ) func main() { r := gin.Default() r.Use(Cors()) // 主要是这里 r.GET("/test", function(){ c.String(200, "success") }) _ = r.Run(":8080") } // 开启跨域函数 func Cors() gin.HandlerFunc { return func(c *gin.Context) { c.Writer.Header().Set("Access-Control-Allow-Origin", "*") c

[Gin] 单文件极简 HTTP Server 流程分析 ( gin-gonic/gin)

自作多情 提交于 2020-04-15 09:00:15
【推荐阅读】微服务还能火多久?>>> /** * example.go * * @link https://cnblogs.com/farwish */ package main import " github.com/gin-gonic/gin " func main() {    // 由于是外部调用包,所以必须含包名 gin. 作为前缀    // Default 返回带有已连接 Logger 和 Recovery 中间件的 Engine 实例。 r := gin.Default()    // Engine 结构体中内嵌了 RouterGroup 结构体,即继承了 RouterGroup(其有成员方法 GET) r.GET( " /ping " , func(c * gin.Context) {      // 使用 context.go 提供的方法渲染 json      // 关于 gin.H 可看这里: https://www.cnblogs.com/farwish/p/12628549.html c.JSON( 200 , gin.H{ " message " : " pong " , }) })   // 默认是 0.0.0.0:8080 端口,内部使用了 http.ListenAndServe(address, engine) r.Run("9090") //

玩vue和gin,可能我搞错方向,但依然走下去

♀尐吖头ヾ 提交于 2020-04-14 08:31:56
【今日推荐】:为什么一到面试就懵逼!>>> 就是如何将外键的东东,显示在网页上。 我是如下实现的,作个记录: 一,先在gin里弄好外键及api,此处不表。 二,vue前端显示时,先通过api,将两个数据都下载下来。 getList() { this .listLoading = true fetchProjectList( this .listProjectQuery).then(response => { this .listProject = response.data.list this .listLoading = false }).then(() => { fetchList( this .listQuery).then(response => { this .list = response.data.list this .total = response.data.total this .listLoading = false }) }) }, 三,在需要显示外键时,使用函数来实现。 echoName(id) { for ( var value of this .listProject) { if (value.ID == id) { return value.name } } }, echoCnName(id) { for ( var value of this

图神经网络的新基准

独自空忆成欢 提交于 2020-04-13 11:11:33
【今日推荐】:为什么一到面试就懵逼!>>>       作者 | 李光明    编辑 | 贾 伟   编者注:本文解读论文与我们曾发文章 《 》所解读 论文,为同一篇,不同作者,不同视角。一同参考。   近些年,图神经网络(GNN)的关注度越 来越高,相关的算法也越来越多,应用领域越来越广,其面临的两大基础问题是:   1)构建GNN的第一原则和第一要素是什么?使用什么样的架构能够使得GNN在大数据集上同样拥有泛化能力和扩展性?   2)如何研究和量化不同 GNN 的影响?   基准框架(Benchmarking)是解决这些基础问题的强大工具。比如,著名的2012 ImageNet 竞赛提供了基准的图像数据集,引来各国参赛队伍争相产出最好的图像分类模型,直接促进了深度学习在计算机视觉领域的变革。   但设计成功的基准库面临着很多挑战:合适的数据集,鲁棒性的代码接口,以及公平的实验设置,并且要求结果可复现。现有的GNN模型常用的数据集(CORA和TU)都很小,导致大多数GNN模型产出几乎一样的结果,即使没有引入图结构的神经网络,有时都能表现地比GNN好。此外,实验参数的设置,包括超参,损失函数以及学习率的选择,都是构建基准库需要面临的挑战。      论文链接:   https://arxiv.org/pdf/2003.00982.pdf   开源链接:   https:/

构建GNN的「统一场」:从与WL算法、组合优化算法的联系看GNN的表达能力

…衆ロ難τιáo~ 提交于 2020-04-12 12:12:12
      作者 | Mr Bear    编辑 | 丛 末   近年来,图神经网络(GNN)领域內可谓百家争鸣。然而,真正要想在图神经网络的设计上有革命性的创新,不可避免地要对图的本质问题进行深入探究。      原文地址:https://arxiv.org/pdf/2003.04078v1.pdf   本文是一篇来自京都大学的图神经网络表达能力综述,从 GNN、WL 算法、组合优化问题之间的联系入手,进行了深入的归纳和分析。内容涉及计算机网络通信、网络算法,组合数学、可计算性分析等方面,内容非常丰富,其融会贯通的能力令人叹为观止!    1    引言   对于各种各样的图学习问题来说,图神经网络(GNN)是非常有效的机器学习模型。这些问题包括化学信息学、推荐系统、问答系统、以及组合优化问题。Hamilton、Zhou、Wu 等人分别于 2017、2018、2019 年对 GNN 做了全面的综述。   尽管在许多领域中,GNN 在实验中都取得了成功,但是 Xu 等人和 Morris 等人却指出,GNN 不能够区分一些图对。这说明 GNN 不能使用任何参数正确地对这些图进行分类,除非这些图的标签是相同的。这样的结果与多层感知机的通用近似能力形成了鲜明的对比。   此外,Sato 等人指出了 GNN 最多能像分布式局部算法(Distributed Local Algorithm

434. 字符串中的单词数

岁酱吖の 提交于 2020-04-12 11:47:42
统计字符串中的单词个数,这里的单词指的是连续的不是空格的字符。 请注意,你可以假定字符串里不包括任何不可打印的字符。 示例: 输入: "Hello, my name is John" 输出: 5 思路详见注释。 1 class Solution(object): 2 def countSegments(self, s): 3 """ 4 :type s: str 5 :rtype: int 6 """ 7 if len(s.split()) == 0: 8 return 0 9 # 设置计数器,初始值为1 10 index = 0 11 # 遍历字符串,如果当前遇到的字符是字母前一个字符是空格时,计数器增1 12 # 当然,字符串第一个字符单独考虑 13 for i in range(len(s)): 14 if (i == 0 or s[i - 1] == ' ' ) and s[i].isalnum(): 15 index += 1 16 return index 17 18 def countSegments2(self, s): 19 """ 20 :type s: str 21 :rtype: int 22 """ 23 # 设置计数器,初始值为1 24 index = 1 25 # 遍历字符串,如果当前遇到的字符不是字母,那么在遇到下一个字母时,计数器增1 26 for

434. 字符串中的单词数

纵饮孤独 提交于 2020-04-12 11:23:48
统计字符串中的单词个数,这里的单词指的是连续的不是空格的字符。 请注意,你可以假定字符串里不包括任何不可打印的字符。 示例: 输入: "Hello, my name is John" 输出: 5 思路详见注释。 1 class Solution(object): 2 def countSegments(self, s): 3 """ 4 :type s: str 5 :rtype: int 6 """ 7 if len(s.split()) == 0: 8 return 0 9 # 设置计数器,初始值为1 10 index = 0 11 # 遍历字符串,如果当前遇到的字符是字母前一个字符是空格时,计数器增1 12 # 当然,字符串第一个字符单独考虑 13 for i in range(len(s)): 14 if (i == 0 or s[i - 1] == ' ' ) and s[i].isalnum(): 15 index += 1 16 return index 17 18 def countSegments2(self, s): 19 """ 20 :type s: str 21 :rtype: int 22 """ 23 # 设置计数器,初始值为1 24 index = 1 25 # 遍历字符串,如果当前遇到的字符不是字母,那么在遇到下一个字母时,计数器增1 26 for

Go Gin 框架 curl -I 返回 404 的问题

偶尔善良 提交于 2020-04-07 02:11:15
在使用 Go 的 Gin Web 框架的时候,发现一个有趣的问题,curl 一个 router 是正常的,但是加上 -I 参数就 404 了,就像下面这样 package main import "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() // listen and serve on 0.0.0.0:8080 } 正常的 curl http://127.0.0.1:8080/ping {"message":"pong"} 404的 curl -I http://127.0.0.1:8080/ping HTTP/1.1 404 Not Found Content-Type: text/plain Date: Wed, 31 Oct 2018 04:35:22 GMT Content-Length: 18 然后通过抓包发现,curl -I 的 http method 是 HEAD,但是我们只定义了GET,所以它就理所当然的 404 了 大部分时候这个样子,对我们也没什么影响,但是部分 slb 在对 http 服务做健康检查的时候,用的

[Gin] gin.H{} 与 map[string]interface{}

无人久伴 提交于 2020-04-06 19:13:12
gin.H 中的 H 是对 map[string]interface{} 定义的新类型,用来简化生成 map 数据时的书写。 // H is a shortcut for map[string]interface{} type H map[ string ] interface {} map[string]interface{} 中的 string 代表键的类型,interface{} 代表值可以是任意类型。 Link: https://www.cnblogs.com/farwish/p/12628549.html 来源: oschina 链接: https://my.oschina.net/u/4273871/blog/3219401

golang.

末鹿安然 提交于 2020-03-25 13:35:37
3 月,跳不动了?>>> golang GIN 开发. https://www.jianshu.com/p/98965b3ff638/ 来源: oschina 链接: https://my.oschina.net/innovation/blog/3211114