- 博客(89)
- 资源 (1)
- 收藏
- 关注
原创 Golang的Channel基本定义和用法
1.无缓冲Channelpackage mainimport ( "fmt" "time")// 子goroutine,主goroutine结束,子也结束func NewTask() { i := 0 for { i++ fmt.Println("new Goroutine: i =", i) time.Sleep(1 * time.Second) }}func main() { //定义一个无缓冲的channel c := make(chan int) g
2021-04-12 22:06:25
1554
1
原创 Go的结构体标签
1.代码示例package mainimport ( "fmt" "reflect")// info . doc 标签type Person struct { ID int64 `info:"id" doc:"编号"` Name string `info:"name" doc:"名字"` Age int64 `info:"age" doc:"年龄"`}func FindTag(str interface{}) { t := reflect.TypeOf(str).E
2021-04-11 23:34:42
728
原创 Go反射介绍
1.reflect代码示例package mainimport ( "fmt" "reflect")func RefectNum(arg interface{}) { fmt.Println("type :", reflect.TypeOf(arg)) fmt.Println("value :", reflect.ValueOf(arg))}type Person struct { ID int64 Name string Age int64}func (thi
2021-04-11 23:13:39
640
原创 Interface空接口万能类型与类型断言机制
1.空接口interface{}int, string. float32,float64.struct…都实现了interface{}package mainimport "fmt"// interface{}是一个万能数据类型func MyFunc(arg interface{}) { fmt.Println("my func is running") fmt.Println(arg) // interface如何区分 此时引用的底层数据类型到底是什么 // go中
2021-04-11 20:47:20
306
原创 Go的面向对象
1.对象的创建package mainimport "fmt"// 声明一种新的数据类型 ...// type myInt int// 定义一个结构体type Hero struct { Name string Ad int Level int}// 给类增加一个方法func (this *Hero) GetName() { fmt.Println("name =", this.Name)}// 给类增加一个方法func (this *Hero) SetNa
2021-04-11 20:07:34
140
原创 map的声明和使用
1.map的声明方法package mainimport "fmt"func main() { // 1.声明myMap是一个map类型, key 是string ,value是int // 在使用map前,给myMap开辟空间 myMap := make(map[string]int) myMap["one"] = 1 // 不make会报错 fmt.Printf("my map = %v\n", myMap) // 2. 声明+自动开辟空间 myMap2 := map[str
2021-04-11 17:16:36
1396
原创 Go中的array和slice
文章目录1.数组的介绍1.1 数组的声明方式1.2 数组注意点2.切片的介绍2.1 slice(动态数组的声明方式)2.2 切片注意点2.3 切片的容量的追加2.3.1 容量未满2.3.2 容量满了再append: 会默认申请一个caps=5的空间2.3.4 当caps很大时,go为了节省内存, 会先尝试申请1/4的空间2.4 切片的截取1.数组的介绍1.1 数组的声明方式// 固定长度的数组var myArray1 [10]intmyArray2 := [10]int{1,2,3,4}my
2021-04-11 16:52:49
259
原创 Go中defer 的使用
defer:函数执行完后执行的语句文章目录1.示例代码2. defer的知识点1. defer执行顺序2.defer和return的谁先执行1.示例代码package mainimport "fmt"func main() { // 写入defer关键字 fmt.Println("hello main 1,,,,") defer fmt.Println("main end 1") defer fmt.Println("main end 2") fmt.Println("hello.
2021-04-11 15:58:18
169
原创 Go中的指针
1.值传递2.指针传递函数执行步骤如下:p *int定义指针类型的变量 ⇒ &p = 0x0843A048, p(内存)=0x0000000 # 0的地址位置即:指针实质: p指向了0的内存地址var a=1定义a ⇒ a(内存)=1, &a = 0x0843A040&aa的指针地址 ⇒ &a = 0x0843A040p = &ap(内存)=0x0843A040, &p = 0x0843A0
2021-04-11 10:06:46
187
原创 2.Go语法--const和iota的使用
1.变量package mainimport "fmt"// 声明变量// var name string// var age int// var isOk bool// 1.批量声明--初始值var ( name string // "" 默认值 age int // 0 isOk bool // false)func main() { name = "xxx" age = 26 isOk = true // 2.go 语言中非变量声明了必须使用(不
2021-04-11 00:05:30
397
1
原创 1.Go源码安装
目录1.下载安装源码包2.配置环境变量3.检查是否安装成功4.配置记录1.下载安装源码包https://golang.org/doc/install/source?download=go1.16.3.src.tar.gztar -zxvf go1.16.3.src.tar.gz -C /usr/local2.配置环境变量# 1.修改环境变量vim ~/.bash_profile# 2.最后加上# go配置环境变量export GOROOT=/usr/local/goexport G
2021-04-10 22:49:31
1157
原创 python--Python list转为链表
代码即注释如下import sysimport jsonclass ListNode: """ 定义一个节点,包括value 和next指针,指向下一个node """ def __init__(self, x): self.val = x self.next = Nonedef stringToIntegerLis...
2020-03-13 17:27:56
2155
原创 Python日志功能在Django中的应用
文章目录1.python代码实现完整的日志功能2. 日志在django中的应用1.直接在settings.py中配置2.使用配置文件和fileConfig()函数实现日志配置3.使用字典配置信息和dictConfig()函数实现日志配置3.总结注意点:1.python代码实现完整的日志功能需求: 1)要求将所有级别的所有日志都写入磁盘文件中 2)all.log文件中记录所有的日志信息,日志...
2020-02-11 11:34:48
362
原创 基础知识---nginx工作原理
1.架构图如下2.查看nginx进程ps -ef | grep nginx3.work如何工作4.一个master和多个worker1.热部署(即不用重新restart,使配置生效,真正的生产环境是不能随随便便重启服务的)2.对于每个work是独立的进程,即使一个work死掉了, 不会影响到其他work的请求3.采用 io多路复用机制 ,通过异步非阻塞的方式处理请求, work...
2020-01-17 17:35:29
259
原创 基础知识---nginx配置文件介绍
1.nginx的配置文件为准/etc/nginx/nginx.conf # 全局配置/etc/nginx/conf.d/*.conf # 自定义配置,如果需要自己配置,建议自己修改/etc/nginx/sites-available # 默认配置2.nginx配置文件介绍(/etc/nginx/nginx.conf)全局块user www-data;worker_processes...
2020-01-17 16:40:14
350
原创 服务器防火墙设置
1.查看防火墙状态systemctl status firewalld.service2.查看开放端口firewall-cmd --zone=public --list-ports3.添加端口firewall-cmd --zone=public --add-port=8080/tcp --permanent # (--permanent永久生效,没有此参数重启后失效)4.重新加...
2020-01-17 16:20:51
827
原创 基础知识---Nginx的安装 卸载及常用命令
1.Ubuntu在线安装#安装apt-get updateapt-get install nginx#启动sudo /etc/init.d/nginx start补充:Usage: nginx {start|stop|restart|reload|force-reload|status|configtest|rotate|upgrade}#卸载sudo apt-get re...
2020-01-17 15:32:53
1158
原创 docker使用----How to include files outside of Docker's build context?
目标:在于解决ADD/COPY当前Dockerfile所在目录之外的目录下的文件文件目录结构如下:project├── dockerfile│ ├── docker-compose.yml│ └── Dockerfile└── test └── 1.txt常用错误思路:Dockerfile: FROM ubuntu:latest COPY ../test...
2019-01-21 22:19:23
6214
原创 Dockerfile与docker-compose设置环境变量
文章目录方式一:在Dockerfile中设置环境变量方式二:在docker-compose.yml中设置环境变量方式三:结合Dockerfile、docker-compose.yml和.env设置环境变量方式一:在Dockerfile中设置环境变量ENV <KEY> <VALUE>1.必须写死.不灵活2.只能在构建镜像的时候设置的环境变量方式二:在docke...
2019-01-17 21:04:26
19714
1
原创 Docker学习笔记--------4.docker的数据卷容器
文章目录1.什么是数据卷容器2.如下图所示3.挂载数据卷容器的方法4.Docker数据卷的备份和还原1.什么是数据卷容器 命名的容器挂载数据卷,其他容器通过挂在这个容器实现数据共享,挂在数据卷的容器,就叫做数据卷容器2.如下图所示3.挂载数据卷容器的方法docker run --volumes-from [container name]相关演示指令如下: 运行一个容器...
2019-01-13 22:28:57
206
原创 Docker学习笔记--------3.Dockerfile的构建过程
文章目录1.Dockerfile的构建过程2.使用中间层镜像进行调试3.构建缓存4.查看一个镜像的构建过程1.Dockerfile的构建过程1.从基础镜像A运行一个容器,得到容器A2.执行一条指令,对容器A做出修改3.执行类似于docker commit 的操作,提交一个新的镜像层B4.再基于刚提交的镜像B运行一个新容器,得到容器B5.执行下一条dockerfile指令,直至所有指令...
2019-01-13 21:29:05
325
原创 Docker学习笔记--------2.Dockerfile的指令
文章目录1.Dockerfile的指令1.FROM2.MAINTAINER 3.RUN3.1 方式一:RUN (shell模式)3.3 方式二:RUN [] (exec模式)4.EXPOSE 5.CMD和ENTRYPOINT6.ADD和COPY7.VOLUME8.WORKDIR ENV 和USER9.ONBUILD1.Dockerfile的指令1.FROM格式1: FROM <...
2019-01-13 21:13:46
367
原创 用Python实现希尔排序
1.希尔排序算法思想 将待排序数组按照步长gap进行分组,然后将每组的元素利用直接插入排序的方法进行排序;每次将gap折半减小,循环上述操作;当gap=1时,利用直接插入,完成排序。2.实质希尔排序是基于插入排序的以下两点性质而提出改进方法的: 1.插入排序在对几乎已经排好序的数据操作时,效率高,即可以达到线性排序的效率。 2.但插入排序一般来说是低效...
2018-11-11 22:10:29
703
2
原创 Django笔记--使用celery异步完成发送验证码的步骤
目的: 将耗时的代码放入一个新的进程中执行解决方法: 使用celery 1.在虚拟环境中安装包celerypip install celery2.在项目目录下新建celery_tasks包3.在celery_tasks下新建config.py===>指定broker到redis# config.py broker_url='redis://127.0.0.1:...
2018-10-27 11:03:11
588
原创 Django笔记---使用jwt中的token鉴权机制完成状态保持的步骤
1.安装包 djangorestframework-jwt pip install djangorestframework-jwt2.配置drf, jwt过期时间 REST_FRAMEWORK = { ........... # 身份认证的方式:JWT session 'DEFAULT_AUTHENTICATI...
2018-10-26 21:53:34
1720
原创 Django开发BUG记录---RuntimeError: Model class models.User doesn't declare an explicit app_label and isn'
1.问题如下RuntimeError: Model class models.User doesn't declare an explicit app_label and isn' 2.解决方法,在导入models的时候,最好加上app应用名 如果你和我有共同爱好,我们可以加个好友一起交流! ...
2018-10-26 21:44:45
10013
2
原创 (error) MISCONF Redis is configured to save RDB snapshots, but is currently not able to persist on d
1.问题如下(error) MISCONF Redis is configured to save RDB snapshots, but is currently not able to persist on disk. Commands that may modify the data set are disabled. Please check Redis logs for detail...
2018-10-26 21:40:23
233
原创 为mysql数据库创建新用户
1.为项目创建数据库 create database mail default charset uft8:2.创建数据库用户create user ywk identified by "mysql";grant all on mail.* to 'ywk'@'%';# grant select,insert,update,delete,create on mail.* to...
2018-10-24 21:58:02
5023
原创 Django笔记---Django中路由的匹配过程
1.url地址的构成: 协议://域名:端口/路径/查询字符串 如: http://127.0.0.1:5000/users/index/?name=ywk&age=24 协议:http 域名:127.0.0.1 端口:5000 ...
2018-10-22 19:12:07
1409
原创 用Python实现直接插入排序
1.直接插入排序 直接插入排序是一种最简单直观的排序算法,它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。 2.算法步骤,如下图所示1)将第一待排序序列第一个元素看做一个有序序列,把第二个元素到最后一个元素当成是未排序序列。2)从头到尾依次扫描未排序序列,将扫描到的每个元素插入有序序列的适当位置。(如果待插入的元...
2018-10-22 19:09:53
3291
原创 Django笔记---cookie和session的简单介绍以及session保存和获取流程
1.会话会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话。常用的会话跟踪技术是Cookie与Session。Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端记录信息确定用户身份。2.cookie1.定义:保存在浏览器中的键值对格式的文本信息 2.Django中写cookie: response.set_cookie(...
2018-10-18 22:06:59
403
转载 ubuntu安装软件出现error: ommand ‘x86_64-linux-gnu-gcc’ failed
ubuntu 一个常见的错误 error: ommand ‘x86_64-linux-gnu-gcc’ failed这个错误很可能是安装某个东西时,缺少相关的依赖环境解决办法就是安装twist依赖,其他情况需要具体分析sudo apt-get install python-twisted-dev python2.7-dev 或者sudo apt-get install...
2018-10-17 20:54:25
854
原创 pycharm连接mysql时:ERROR 1045 (28000): Access denied for user 'ODBC'@'localhost' (using password)
1.问题如下,不是密码错误的问题,而是权限的问题ERROR 1045 (28000): Access denied for user 'ODBC'@'localhost' (using password: NO) 错误,即使各个信息正确并且手动能进入mysql的情况下,pycharm连接依然出错 2.解决方法1.进入数据库:mysql -uroot -p2. ...
2018-10-17 20:51:15
4499
2
翻译 使用pip安装时locale.Error: unsupported locale setting的解决方法
1.问题如下图: 原因是语言环境配置出错 2.解决办法: 在终端输入以下命令即可解决export LC_ALL=C
2018-10-15 16:54:52
1710
1
原创 用Python实现快速排序(Quicksort)算法
1.快速排序(Quicksort)算法介绍快速排序(Quicksort)是对冒泡排序的一种改进,但是不是稳定的排序算法2.算法思想1)设置两个变量i、j,排序开始的时候:i=0,j=N-1;2)以第一个数组元素作为关键数据,保存在key中,即key=A[0];3)从j开始向前搜索,即由后开始向前搜索(j--),找到第一个小于key的值A[j],用A[j]覆盖A[0],4...
2018-10-14 11:47:10
9998
1
原创 汉字-字母-字节-位之间的转换
在flask框架中使用SQLAlchemy创建模型的时候,设置字段: nick_name = db.Column(db.String(64), unique=True, nullable=False) # 用户昵称 db.String(64) 64位=8个字节=4个汉字 具体换算如下:汉字-字母-字节-位之间的转换:1 Byte = 8 bit...
2018-10-14 11:16:56
5060
原创 无法获得锁 /var/lib/dpkg/lock - open (11: 资源暂时不可用)的解决方法
1.问题如下图 2.解决方法 -- 用此命令强行释放锁:sudo rm -rf /var/lib/dpkg/locksudo rm -rf /var/cache/apt/archives/lock 如果你和我有共同爱好,我们可以加个好友一起交流! ...
2018-10-14 10:49:00
411
原创 ssh连接远程服务器出现Host key verification failed. lost connection问题的解决
1.问题如下:@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@IT IS POS...
2018-10-14 10:43:37
5699
1
原创 Pycharm代码块的设置
1.代码块介绍对于一些经常写的固定的代码,在pycharm中,可以将这些代码添加成一个代码块,只需要输入一个自己的自定义的块名即可自动完成代码的编写 2.系统代码块其实在前面经常用到了一些Pycharm中自带代码块, 比如: 输入super:可以选择super(class_name, self).__init__() 输入main: 可以...
2018-09-17 22:30:46
3140
visualcppbuildtools+full
2018-09-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人