- 博客(58)
- 收藏
- 关注
原创 celery 配置
celery 常用配置CELERY_TIMEZONE: 设置时区CELERY_ENABLE_UTC: 是否启动时区设置,默认值是TrueCELERY_CONCURRENCY: 并发的worker数量CELERY_PREFETCH_MULTIPLIER: 每次去消息队列读取任务的数量,默认值是4CELERY_MAX_TASKS_PRE_CHILD: 每个worker执行多少次任务后会死掉BROKER_URL: 使用redis作为任务队列CELERY_TASK_RESULT_EXPIR
2021-03-16 10:01:54
767
原创 celery crontab表达式
celery的crontab表达式crontab是比较完善,可以实现我们各种设置时间的需求。crontab()实例化的时候没设置任何参数,都是使用默认值。crontab一共有7个参数,常用有5个参数分别为:minute:分钟,范围0-59;hour:小时,范围0-23;day_of_week:星期几,范围0-6。以星期天为开始,即0为星期天。这个星期几还可以使用英文缩写表示,例如“sun”表示星期天;day_of_month:每月第几号,范围1-31;month_of_year:月份
2021-03-12 15:09:50
3353
6
原创 Django2.2+Celery4.4.2+Redis 实现异步任务队列以及定时任务
安装对应的库pip3 install celery==4.4.2pip3 install gevent==21.1.2 pip3 install Django==2.0.4配置settings.py文件:CELERY_BROKER_URL = 'redis://localhost:6379/'CELERY_RESULT_BACKEND = 'redis://localhost:6379/'CELERY_RESULT_SERIALIZER = 'json'这里broker配置redis
2021-03-10 15:06:16
551
原创 flask使用Blueprint
问题一定要把项目路径导入到系统路径中结构目录api_blueprint.pyfrom flask import Flaskimport sysimport pathlib# 把当前目录加入系统路径base_dir = pathlib.Path(sys.argv[0]).parent.parentif sys.path.count(base_dir) == 0 : sys.path.append(str(base_dir))#查看系统路径# print(sys.path)#
2021-01-13 12:01:58
316
原创 Django中cookie和session的存、取、删除
vue 设置Axios允许携带cookieimport axios from 'axios'Vue.prototype.axios =axiosaxios.defaults.withCredentials = trueDjango 设置settings允许携带cookieCORS_ALLOW_CREDENTIALS = True一定要把所有的本地IP改成公网IP,前后端起项目要用0.0.0.0 启动,不然会取不到sessioncookie的存:response = HttpRespons
2020-11-23 21:42:11
608
原创 使用captcha库生成验证码
from captcha.image import ImageCaptchafrom random import randintfrom base64 import b64encodefrom base64 import b64decodefrom io import BytesIOimport randomfrom django.http import HttpResponse# 随机颜色def get_random_color(): R = random.randrange (
2020-11-23 21:08:35
935
原创 docker命令(下)
容器操作docker ps# ps用于输出容器列表$ docker ps <选项># 选项-a, --all=false 列出所有容器,不带-a则输出当前正在运行的容器。--before="" 列出特定容器创建前的容器,包含停止的容器。-f, --filter=[] 设置输出过滤-l, --latest=false 列出最后创建的容器包含停止的容器-q, --quiet=false 只输出容器的ID$ docker psCONTAINER ID IMAGE
2020-11-23 20:42:53
368
1
原创 redis使用zadd出现的问题
python与redis数据库交互中zadd、zincrby会出现的问题今天使用redis中zadd插入有序列表的时候报出一个异常刚开始以为是自己传参传错了,后面尝试重新书写代码,结果还是无济于事就很头大 ,去搜了一下相关资料,原来是因为版本问题需要修改里面的一个格式(可能是因为没注意版本问题)如果你是在redis的新版本中使用之前的在旧版本的zadd语句就就会给你报出这样的异常:AttributeError: ‘int’ object has no attribute ‘items’(err
2020-11-23 20:41:39
2303
原创 线程、进程、多线程
进程与线程很多同学都听说过,现代操作系统比如Mac OS X,UNIX,Linux,Windows等,都是支持“多任务”的操作系统。什么叫“多任务”呢?简单地说,就是操作系统可以同时运行多个任务。打个比方,你一边在用浏览器上网,一边在听MP3,一边在用Word赶作业,这就是多任务,至少同时有3个任务正在运行。还有很多任务悄悄地在后台同时运行着,只是桌面上没有显示而已。现在,多核CPU已经非常普及了,但是,即使过去的单核CPU,也可以执行多任务。由于CPU执行代码都是顺序执行的,那么,单核CPU是怎么
2020-11-23 20:33:33
120
原创 Celery和borker
CeleryCelery是一个异步任务的调度工具Celery 是 Distributed Task Queue,分布式任务队列,分布式决定了可以有多个 worker 的存在,队列表示其是异步操作,即存在一个产生任务提出需求的工头,和一群等着被分配工作的码农。在 Python 中定义 Celery 的时候,我们要引入Broker,中文翻译过来就是“中间人”的意思,在这里 Broker 起到一个中间人的角色。在工头提出任务的时候,把所有的任务放到 Broker 里面,在 Broker 的另外一头,一群码农
2020-11-23 20:33:00
595
1
原创 WebHook机制
1.什么是web hookwebhook是一个API概念,并且变得越来越流行,我们能用事件描述的事物越来越多,webhook的作用范围也就越大, webhook作为一个清凉的事件处理应用,正变得越来越有用我们在网上做的工作,大部分其实就是事件,webhooks已经成为了连接系统的主要方式,不管是用户创建,支付成功,DockerHub镜像推送或者Git仓库上的合并请求,这些都是非常有用并且轻量级的共享信息的方式简单来说,就是一种反向API,类似于触发器一样打个比方,比如项目A要从项目B获取
2020-11-23 20:32:26
5109
原创 python2和python3 的区别
Python 2 和 Python 3引言Python 是一种极具可读性和通用性的编程语言。Python 这个名字的灵感来自于英国喜剧团体 Monty Python,它的开发团队有一个重要的基础目标,就是使语言使用起来很有趣。Python 易于设置,并且是用相对直接的风格来编写,对错误会提供即时反馈,对初学者而言是个很好的选择。Python 是一种多范式语言,也就是说,它支持多种编程风格,包括脚本和面向对象,这使得它适用于通用目的。随着越来越多地在工业中,被诸如联合太空联盟(NASA 的主要飞机支持承
2020-11-23 20:31:59
737
原创 Django事务的使用
from django.db import transaction # 导入事务class XXX(APIView): @transaction.atomic # transaction.atomic装饰器可以保证该函数中所有的数据库操作都在一个事务中。 def XXX(self,request): # 开启事务 with transaction.atomic (): # 设置事务保存点
2020-11-16 21:33:03
316
原创 mysql 支持emoji表情存储
发现mysql存入emoji就会报错,mysql的utf8编码的一个字符最多3个字节,但是一个emoji表情为4个字节,所以utf8不支持存储emoji表情。也试了网上大多数得方法修改字符集,修改成utf8的超集utf8mb4,发现并没有什么用。解决代码...
2020-11-15 20:52:28
243
原创 websocket在Django中的实现
使用方法使用上很方便,如果为一个单独的视图函数处理一个websocklet连接可以使用accept_websocket装饰器,它会将标准的HTTP请求路由到视图中。使用require_websocke装饰器只允许使用WebSocket连接,会拒绝正常的HTTP请求。一些属性和方法1.request.is_websocket()如果是个websocket请求返回True,如果是个普通的http请求返回False,可以用这个方法区分它们。2.request.websocket在一个websocke
2020-11-15 20:35:28
639
原创 单因子登录、双因子登录、三因子登录
可用于认证的因子可有三种:what you knowwhat you havewhat you are单因子登录(what you know)表示你知道什么,这种的一般只需要输入账号密码就可以完成登录双因子登录(what you have)表示你有什么,这种登录在单因子基础上可能还需要结合另一种实物:如短信验证,或者令牌之类。可以产生token的硬件设只能手机的app手机短信微信扫码确认都可以成为双因子认证,双因子认证会结合一个你有的硬件设备,只要这个专属的硬件不丢失,就可
2020-11-15 19:29:45
7258
原创 vuejs-emoji安装使用
安装# NPM$ npm install emoji-vue --save使用import VueEmoji from 'emoji-vue' data() { return { newss:'', } }//在组件def methods: { onInput(event) { //事件。数据包含文本区域的值 //将输入的话和表情赋给newss this.newss=even
2020-11-12 11:31:54
1428
2
原创 在MySQL中存储大文件
在MySQL中存储大文件我们的目标:把一首mp3保存到MySQL数据库中! 由于MySQL默认当存入的数据太大时会抛异常,所以应在my.ini中添加如下配置!max_allowed_packet=10485760,这样,可以最大存入一个10M的数据(当然可以设置更大)MySQL使用如下四种类型来处理文本大数据: 类型 长度 tinytext (256B) text (64K) mediumtext
2020-11-10 21:56:42
1946
原创 vue websocket 和箭头函数
vue websocket 和箭头函数在websocket中使用this 一定要用箭头函数原因:websocket中没有this下的方法,箭头函数会向外寻找(就像涟漪一样扩散)直到找到this. //判断浏览器是否支持websocket if("WebSocket" in window){ console.log("支持"); //请求网站 var ws = new WebSocket('ws://127.0.0.1:8000/websocketlink/
2020-11-09 21:29:16
296
原创 使用小皮面板解决Mysql 2006 错误
使用小皮面板解决Mysql 2006 错误一般情况下Mysql 2006 错误 :MySQL 服务器宕机了我们可以通过检查服务器正常运行时间(uptime)和服务器的错误日志来检查是否服务器确实消失了。MySQL 连接超时mysql 默认链接时间为120秒 ,可以修改连接时间你的SQL语句被杀死了你的SQL语句太大了这些问题可以在小皮面板设置解决...
2020-11-09 09:58:27
6508
1
原创 Python 和 Django 路径区别
Python 和 Django 路径区别1.python1.python 可以适应 ./文件夹/文件夹/文件 ../文件夹/文件夹/文件 的路径找到文件或文件夹2.Django# img 路径拼接 django项目根路径 文件夹路径 图片名 tu_jpg = os.path.join (BASE_DIR, "static/upload/" +img) Django 必须以Django项目的根路径+文件夹路径+文件 的格式来找到文件或文件夹3.OS模块基本操作
2020-11-09 09:54:38
261
原创 Ant Design Vue快速入门教程
Ant Design VueAnt Design是蚂蚁金服出品的一款前端UI库,官方的介绍是服务于企业级产品的设计体系,基于确定和自然的设计价值观上的模块化解决方案,让设计者和开发者专注于更好的用户体验。简而言之就是一款简洁漂亮的UI库。环境node.js webpack vscode npm//安装vue脚手架和ant design vuenpm install -g @vue/clinpm i --save ant-design-vue//创建一个vue demovue create an
2020-11-04 07:42:16
10887
4
原创 权限模型
ALC权限模型ACL:Access Control List,访问控制列表,是前几年盛行的一种权限设计,它的核心在于用户直接和权限挂钩。RBAC权限模型RBAC:Role Based Access Control ,翻译过来基本上就是基于角色的访问控制系统。RBAC的核心是用户只和角色关联,而角色代表对了权限,这样设计的优势在于使得对用户而言,只需角色即可以,而某角色可以拥有各种各样的权限并可继承。ACL和RBAC相比缺点在于由于用户和权限直接挂钩,导致在授予时的复杂性,虽然可以利用组来简化这
2020-11-03 18:38:37
375
原创 Python工厂模式!!!
Python工厂模式工厂方法模式有一种常见的分类的方法:根据产品是由具体产品还是具体工厂可以分为 工厂方法模式 和 简单工厂模式。根据工厂的抽象程度可以分为 工厂方法模式和 抽象工厂模式。接下来会通过例子对比简单工厂模式和工厂方法模式。工厂意图定义一个用于创建对象的接口,让子类决定实例化哪一个类。Factory Method 使一个类的实例化延迟到其子类。案例第一阶段小李开了一个代工厂,专门帮各大厂商生产手机,一开始只有小米找他生产小米手机(MiPhone),后来质量过硬,声名远播
2020-11-03 18:13:37
1468
原创 redis存取数据和设置到期时间
import redis#链接数据库pool=redis.ConnectionPool(host='localhost',port=6379,db=0)r = redis.StrictRedis (connection_pool=pool)#存储 key valuesr.set (email, num)# 时间设定 key 时间r.expire (email, 120)# 取出值r.get (email)# 判断是否存在 存在返会1 不存在返回0 返回的数为 int 类型
2020-10-28 20:41:57
892
原创 JWT的自定义方法
import jwt# 加密def encode_jwt(parameter): # 加密 encode_jwt = jwt.encode(parameter,'密钥',algorithm='HS256') print (encode_jwt) return encode_jwt# 解密def decode_jwt(parameter): # 强转类型 encode_jwt = str(parameter,'utf-8') # 解密
2020-10-28 20:31:59
653
原创 自定义MD5方法
自定义MD5方法import hashlibdef Mymd5(password): md = hashlib.md5 ( ) md.update (password.encode ("utf-8")) return md.hexdigest ( )print (Mymd5 ('123'))
2020-10-28 20:29:14
935
原创 Django Vue Access-Control-Allow-Origin跨域问题
1.在Django 和 VUE 联动可能会出现Access-Control-Allow-Origin跨域问题:如图所示:2.在Django端可以进行设置就可以解决# 定一个变量接收返回前端的数据response = Response ({'message': '验证码不能重复发送'}) # 在变量后加上["Access-Control-Allow-Origin"] = "*" or ["Access-Control-Allow-Origin"] = "指定一个域名"response["Acc
2020-10-28 20:21:49
2117
1
原创 Git 命令
创建文件夹mkdir XXX 切入文件夹cd XXX配置全局 git config --global user.name "XXXXXXXXXX" git config --global user.email "7618738+XXXXXXXX@user.noreply.gitee.com"仓库的初始化(初始化过就不需要在初始化了)git init新建文件README.md没有README.md需要创建touch README.md添加到本地git add -A 提
2020-10-26 20:58:34
113
原创 win10专业版 安装 docker
Win10 系统(必须是专业版)现在 Docker 有专门的 Win10 专业版系统的安装包,需要开启 Hyper-V。开启 Hyper-V程序和功能启用或关闭Windows功能选中Hyper-V安装 Toolbox最新版 Toolbox 下载地址: 访问 https://www.docker.com/get-started,注册一个账号,然后登录。点击 Get started with Docker Desktop,并下载 Windows 的版本,如果你还没有登录,会
2020-10-26 20:44:01
973
原创 支付宝原理
1.支付宝支付流程2.新建支付宝应用# 访问"支付宝开发平台"登录,可以访问开发者中心https://open.alipay.com/platform/home.htm# 可以参考"电脑网站支付" 熟悉电脑支付整体流程 https://docs.open.alipay.com/270/105899/2.1第一步:创建应用(这里使用沙箱环境测试)沙箱环境说明线上环境需要创建应用,因为我们不是企业,没有资质,所以只能申请沙箱环境简单来讲沙箱环境就是给开发者使用的测试环境沙箱环境地
2020-10-15 21:13:30
1070
原创 ModelSerializers序列化正向查询和反向查询
from rest_framework import serializersfrom users.models import UserInfoclass UserInfoSerializer(serializers.Serializer): name = serializers.CharField(min_length=3,max_length=20) # 显示普通字段 ut = serializers.CharField(source='ut.type_n
2020-10-15 20:18:39
649
原创 django配置Base基类!!!!
class Base(models.Model): create_time=models.DateTimeField(auto_now_add=True,verbose_name="创建时间") update_time=models.DateTimeField(auto_now=True,verbose_name="更新时间") class Meta: abstract = True
2020-10-15 20:14:23
247
原创 微博三方登录原理
1.微博三方登录流程三方登录URLhttps://api.weibo.com/oauth2/authorize? client_id=4122644977&response_type=code &state=study& forcelogin=true& redirect_uri=https%3A%2F%2Fstudy.163.com%2Fsns%2Fweibo%2FoAuthCallback.htm%3Foaut hType%3Dlogin%26returnU
2020-10-09 11:32:13
182
原创 pipeline原理
1.pipeline原理redis基本语法:https://www.cnblogs.com/xiaonq/p/7919111.htmlredis四篇:https://www.cnblogs.com/xiaonq/category/1544586.html1.1 redis发送数据原理Redis是建立在TCP协议基础上的CS架构,客户端client对redis server采取请求响应的方式交互。一般来说客户端从提交请求到得到服务器相应,需要传送两个tcp报文。设想这样的一个场景,你要
2020-10-08 18:49:13
482
原创 Git简易的命令行入门教程
简易的命令行入门教程:Git 全局设置:git config --global user.name "wjz2844829264"git config --global user.email "7618738+wjz2844829264@user.noreply.gitee.com"创建 git 仓库:mkdir b10cd b10git inittouch README.mdgit add README.mdgit commit -m'[- 删除]'git commit -m'
2020-10-06 19:44:35
201
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人