GO - 技术教程文章

Go语言-defer的使用【代码】

defer 不管程序是否出现异常,均在函数退出时候,自动执行相关代码实战实例1package mainimport ("fmt" )func main() {defer func() {fmt.Println("main defer")}()if err := test0(); err != nil {fmt.Println(err.Error())return}if err := test1(); err != nil {fmt.Println(err.Error())return} }func test0() error {return nil }func test1() error {return nil }运行结果 main defer实例2package mainimport ("fmt""er...

[Django](1093, "You can't specify target table 'fee_details_invoices' for update in FROM clause") 错误【代码】

dele_id = Fee_details_invoices.objects.filter(fee_detail_id__in=fee_id_list, return_type='2').values_list('fee_detail_id', flat=True) Fee_details_invoices.objects.filter(fee_detail_id__in=dele_id).delete()报错:django.db.utils.DatabaseError: (1093, "You can't specify target table 'fee_details_invoices' for update in FROM clause")错误分析解决:第一行代码的意思是获取某些条件行的某个字段第二行代码去删...

[心得]安装MongoDB【代码】【图】

1. 安装(1)其他默认(2) 创建文件在E:\DevTools\MongoDB\Server\3.41 1E:\DevTools\MongoDB\Server\3.4下创建data目录然后在data下面创建db和log1 1db和log然后在log文件夹下创建mongo.log1 1mongo.log在bin目录下面执行mongod.exe --config "E:\DevTools\MongoDB\Server\3.4\mongo.conf" --install 1mongod.exe --config"E:\DevTools\MongoDB\Server\3.4\mongo.conf"--install安装mongo服务启动服务net start MongoDB 1net start M...

可重入锁(good)

可重入锁,也叫做递归锁,是指在一个线程中可以多次获取同一把锁,比如:一个线程在执行一个带锁的方法,该方法中又调用了另一个需要相同锁的方法,则该线程可以直接执行调用的方法【即可重入】,而无需重新获得锁;https://www.zhihu.com/question/23284564/answer/29633571对于不同线程则相当于普通的互斥锁。在JAVA环境下 ReentrantLock 和synchronized 都是 可重入锁 最大的作用是避免死锁。在很多情况下线程需要多次进入锁内...

Good Bye 2019 A~G题解

http://codeforces.com/contest/1270辣鸡比赛毁我青春A比较最大的牌即可B找相邻两个差的绝对值>=2的数如果不存在,则每次只能±1或不变,必然不存在合法区间C设和为s1,异或和为s2一种方法是把s2*2,那么加2^x等于异或2^(x+1)从后往前构即可,因为不会影响到异或和的当前位一种更sb的方法:加上两个数,第一个为s2,第二个为(s1+s2)那么和变成s1+s2+(s1+s2)=2(s1+s2),异或和变成s2^s2^(s1+s2)=s1+s2,满足要求D交♂互题先用两次操作...

Google Summer of Code 2017 经验谈

Google Summer of Code (GSoC) 2018 又要开始了. 如果想实现你心中的开源梦想, 用代码让世界变得更美好. 参加GSoC可能是你进入开源的世界最好途径.GSoC是什么Google Summer of Code是Google每年举办的一个活动. 从2005年开始到现在已经举办了十三届.Google在GSoC中的角色是一个平台和资金的提供者. 通过这个平台, 学生能够找到自己心仪的开源组织, 为了能获得实现project idea的资格而展开竞争. 申请期截止之后, 开源组织会把自己选...

django migrations 采坑【代码】

django.db.migrations.exceptions.InconsistentMigrationHistory: Migration admin.0001_initial is applied before its dependency users.0001_initial on database ‘default‘.问题分析,在配置中设置了 AUTH_USER_MODEL = ‘user.User‘ (应用名.模型类名),扩展django自带的user认证.由于不是项目的第一次迁移,所以会产生此问题,解决方案如下:注释掉两个地方: INSTALLED_APPS = [ ... #‘django.contrib.admin‘,... ]path(‘a...

Go语言命令行操作命令详细介绍

Go 命令Go语言自带有一套完整的命令操作工具,你可以通过在命令行中执行go来查看它们:图1.3 Go命令显示详细的信息这些命令对于我们平时编写的代码非常有用,接下来就让我们了解一些常用的命令。go build这个命令主要用于测试编译。在包的编译过程中,若有必要,会同时编译与之相关联的包。1.如果是普通包,就像我们在1.2节中编写的mymath包那样,当你执行go build之后,它不会产生任何文件。如果你需要在$GOPATH/pkg下生成相应的文...

同源、同源策略、跨域问题、django解决方案【代码】【图】

什么是同源: URL由协议、域名、端口和路径组成,如果两个URL的协议、域名和端口相同,则表示他们同源。注意:假如你的网站ip是123.123.123.123,网站的域名是www.abc.com。  http://123.123.123.123:80与http://www.abc.com:80仍然不是同源,因为浏览器会根据字符串来判断的!什么是同源策略同源策略是浏览器的一个安全功能,不同源的客户端脚本在没有明确授权的情况下,不能读写对方资源。所以a.com下的js脚本采用ajax读取...

go算法练习【代码】

冒泡排序:package mainimport("fmt" )// 1, 38, 4, 5, 10 // 1, 4, 38, 5, 10 // 1, 4, 5, 38, 10 // 1, 4, 5, 10, 38 //冒泡排序 func bubble_sort(a []int) {for i := len(a)-1; i > 0; i-- {for j := 0; j < i; j++ {if a[j] > a[j+1] {a[j], a[j+1] = a[j+1], a[j]}}} }func main() {a := []int{38, 1, 4, 5, 10}bubble_sort(a) fmt.Println(a) } 选择排序:package mainimport("fmt" )//38, 1, 4, 5, 10 //1, 38, 4, ...

类别(Category)与扩展(Extensions)

一.类别(Category) 类别(Category)是一种可以为现有的类(包括类簇:NSString...,甚至源码无法获得的类)添加新方法的方式无需从现有的类继承子类。类别添加的新方法可以被子类继承。 注:继承(inheritance)无法为一个类簇创建子类。类别不能添加实例变量。1. 创建类别1.1 声明类别 类别的声明和类的声明格式相似: @interface ClassName(CategoryName) //method declarations @en...

Go 每日一库之 viper【代码】【图】

简介上一篇文章介绍 cobra 的时候提到了 viper,今天我们就来介绍一下这个库。 viper 是一个配置解决方案,拥有丰富的特性:支持 JSON/TOML/YAML/HCL/envfile/Java properties 等多种格式的配置文件;可以设置监听配置文件的修改,修改时自动加载新的配置;从环境变量、命令行选项和io.Reader中读取配置;从远程配置系统中读取和监听修改,如 etcd/Consul;代码逻辑中显示设置键值。快速使用安装:$ go get github.com/spf13/viper...

gomod使用小结【代码】

gomod使用小结使用方法把工程拷贝到$GOPATH/src之外在工程目录下执行:go mod init {module name}该命令会创建一个go.mod文件然后在该目录下执行 go build就可以了go: finding github.com/mitchellh/go-wordwrap latest go: finding github.com/maruel/panicparse/stack latest go: finding github.com/nsf/termbox-go latest .... 此时,go.mod中记录了依赖包及其版本号。但有时我们的包下载不了,被墙了,此时需要使用GOPROXY代理...

mongodb中的_id的ObjectId的生成规则【代码】【图】

mongodb中的_id的ObjectId的生成规则 MongoDB中存储的文档必须有一个"_id" 。这个键值可以是任何类型,默认是ObjectID对象。在一个集合里,每个文档都有一个唯一的“_id”,确保集合里的每个文档都能被唯一标示。ObjectID使用12字节的存储空间,是一个由24个16进制数字组成的字符串。 ObjectId的12个字节按照如下方式生成 时间戳:时间戳,前四个字节是从标准纪元开始的时间戳,单位是秒。可提供秒级别的唯一性。由于时间戳在前,这...

【OC底层】Category、+load方法、+initialize方法原理【图】

Category原理- Category编译之后的底层结构是 struct categroy_t,里面存储着分类对象方法、属性、协议信息- 当程序运行时,通过runtime动态的将分类的方法、属性、协议合并到一个大数组中- 底层使用的是二维数组进行存储,比如:[[分类2方法列表],[分类1方法列表],[原方法列表]]- 将合并后的分类数据(方法、属性、协议)的数组插入到类原来数据的前面,如上- 因为它遍历分类是按倒序遍历的,所有越后面参与编译的Category数据,会...

django 简易博客【代码】【图】

SAE+Django 一:本地安装的工具,版本一定匹配1:python 2.7.32:SVN3:MySQL_python-1.2.3-py2.74:MySQL5:Django1.4 二:开发过程中注意大小写匹配困扰我好长时间问题三:SAE配置config.yaml 1name: guolong201302222 version: 53 4libraries:5 - name: "django" 6 version: "1.4" 7 8handlers:9 - url: /static 10 static_dir: static index.wsgi import sae from guolong20130222 import wsgiapplication = sae.create...

我的Google Keep七大功能使用技巧

我又开始使用Google Keep了,第一次使用是听过Google Keep刚推出的时候,当时功能还不够完善,加之自己正在使用印象笔记整合自己的知识系统,所以没有去深入研究它,最近我的Chrome上装了Google Keep的插件,深入探索后,发现现在的Google Keep已经非常强大了,今天我就把我的使用经验分享给大家: 延伸阅读:善用云端笔记,替代Windows记事本和新建一个Word做日常信息记录一、使用笔记颜色,区分优先级Google Keep的笔记颜色功能,...

GO语言 包 if..else.. for循环 switch 数组【代码】【图】

包1.什么是包1.新建一个文件夹,内部写很多go文件,但是包名必须一致,改文件夹就是一个包2.作用和优点 包用于组织 Go 源代码,提供了更好的可重用性与可读性。由于包提供了代码的封装,因此使得 Go 应用程序易于维护。2.注意点和使用1.包: 2.使用 if-else1.基本语法注意:if 条件{} 大括号和条件之间不能换行 1.语法:if 条件{代码体}elseif 条件{代码体}else {代码体} 2.示例:if a == 90{fmt.Println("a 是90");}if a ...

Django中ajax的基本用法【代码】【图】

初识Ajax:? Ajax并不是一门新的语言,它其实就是基于js写的一个功能模块而已由于原生js书写ajax较为繁琐,django中我们一般直接使用jQuery封装好的ajax模块案例:? 页面上有是三个input框,一个按钮,用户在前两个框中输入数字,点击按钮保证页面不刷新的情况下将数据发到后端做计算,再将计算好的结果发送给前端展示到第三个input框中ajax基本语法结构 $.ajax({// 1. 到底朝哪个后端提交数据url:'', // 控制数据的提交路径 (有三...

spring 整合mongodb报NoSuchMethodError错误【代码】

刚开始通过网上查到相关的资料进行了一些配置,参考链接:http://www.open-open.com/lib/view/open1454374782167.htmlmaven的dependencies如下:<dependency><groupId>org.springframework</groupId><artifactId>spring-core</artifactId><version>4.2.3.RELEASE</version><exclusions><exclusion><groupId>commons-logging</groupId><artifactId>commons-logging</artifactId></exclusion></exclusions><type>jar</type><scope>co...

Django的CBV和FBV【代码】【图】

1. Django支持两种对应关系,CBV和FBVFBV:function base view &CBV:class base view url.py index---函数名 views.py def 函数(request): /index/ -> 函数名 /index/ ->类,请求来了以后,会执行类里面的指定的方法。 2.CBV提交----- class Home(view) Home类必须继承view.2.1 urls.py中写对应关系 2.2 views.py中写函数 2.3 home.html中写模板 3. 过程服务器端先运行起来; 客户端发来请求,先去匹配URL,找到类。再进行二...

MongoDB教程--配置与入门【代码】【图】

MongoDB简介阿里云配置MongoDB数据库的增删查改MongoDB数据最重要的操作是Key-Value的映射。有了这样的映射,可以直接通过关键字去寻找想要的值。例如,通过用户的ID寻找与用户的相关信息,直接通过映射f(用户)=信息。百度百科介绍:MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰...

MonogoDb学习笔记【代码】

最近重新学习了Mongodb,总结下了Monogodb的用法,以便以后查看。备份:mongodump -h 127.0.0.1 -d spm -o /home/liuwei 还原:mongorestore -h dbhost -d dbname -directoryperdb /home/liuwei/spm 显示所有数据库:show dbs; 创建数据库: 如果数据库不存在,则创建数据库,否则切换到指定数据库。use dbname; 删除数据库:db.dropDatabase(); 创建集合: capped 是否固定集合 配合size autoindexid 自动为_id添加索引 max集合中包...

goweb- 对请求的处理【代码】

对请求的处理Go 语言的 net/http 包提供了一系列用于表示 HTTP 报文的结构,我们可以使用它 处理请求和发送相应,其中 Request 结构代表了客户端发送的请求报文,下面让我们看 一下 Request 结构体获取请求 URLRequest 结构中的 URL 字段用于表示请求行中包含的 URL,改字段是一个指向 url.URL 结构的指针 Path 字段获取请求的 URL例如:http://localhost:8080/hello?username=admin&password=123456注: 通过 r.URL.Path 只能得到...

python django查询一周,一月,一年时间【代码】

首先是当前时间的确定,对于年月日,orm模型都有对应的方法直接查询,周是没有方法直接查询的,我是没有找到这个方法,只能间接的查询 123now_time = datetime.datetime.now() # 如果数据库保存的是UTC时间,程序不会蹦但是会提示你这不是本地时间 now_time_utc = datetime.datetime.utcnow()查询本周产生的数据123456# 当前天 显示当前日期是本周第几天day_num = cur_time.isoweekday()# 计算当前日期所在周一monday = (cur_tim...

Django之JSON数据格式【代码】【图】

JSON简介:o JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation)o JSON 是轻量级的文本数据交换格式o JSON 独立于语言 o JSON 具有自我描述性,更易理解* JSON 使用JavaScript 语法来描述数据对象,但是 JSON 仍然独立于语言和平台。JSON 解析器和 JSON 库支持许多不同的编程语言。 序列与反序列化:JS中的JSON对象可以对数据进行序列化(JSON.stringify())和反序列化(JSON.parse())处理;py中jso...

go调查内存泄漏

curl x.x.x.x/debug/pprof/heap > base.heap过段时间curl x.x.x.x/debug/pprof/heap > current.heapgo tool pprof -svg -base base.heap <binary> current.heap > diff.svg原文:https://www.cnblogs.com/niukuo/p/9622696.html

Day17 Django的基础使用和结构【代码】

整个Django的访问流程:浏览器 urls: http://127.0.0.1:8000/timer url.py:1, http://127.0.0.1:8000/timer GET 无请求数据2,url匹配 url: url(r‘^timer/‘,views.showtime)3,showtime()函数4,响应 时间字符换浏览器 urls: http://127.0.0.1:8000/login url.py:1,http://127.0.0.1:8000/login/ GET 无请求数据2,url匹配 url(r"^login",views.login)3,login()函数4,响应 login.html函数返回的url是http://1...

Go语言之Go语言变量【代码】

GO 语言变量Go语言是静态类型语言,因此变量(variable)是有明确类型的,编译器也会检查变量类型的正确性。标识符在编程语言中标识符就是程序员定义的具有特殊意义的词,比如变量名、常量名、函数名等等。 Go语言中标识符由字母数字和_(下划线)组成,并且只能以字母和_开头。 举几个例子:abc, _, _123, a123。关键字关键字是指编程语言中预先定义好的具有特殊含义的标识符。 关键字和保留字都不建议用作变量名。Go语言中有25个关...

UIView+Category

1 .h#import <UIKit/UIKit.h> @interface UIView (UIView_Category)@property (nonatomic, assign) CGFloat x;@property (nonatomic, assign) CGFloat y;@property (nonatomic, assign) CGFloat centerX;@property (nonatomic, assign) CGFloat centerY;@property (nonatomic, assign) CGFloat width;@property (nonatomic, assign) CGFloat height;@property (nonatomic, assign) CGSize size;@property (nonatomic, assign) CGP...