
python-django-tornado-flask
文章平均质量分 71
python大杂烩
乌托邦钢铁侠
Practice makes perfect, fighting with my time .
1. Java
2. English foolish
3. Love riding
展开
-
Tonardo基础入门(二) options全局参数定义、异步与协程基础、RequestHandler用法
文章目录一、options 用法1. options 类为tornado定义参数的类,主要功能和方法有如下几种:2. parse_config_file方法的使用3. parse_command_line() 的使用4. 注意事项:二、同步解释同步模拟1. 准备代码2. 模拟同步三、tornado的异步与协程案例一(同步)、 使用run_sync实现同步调用协程函数案例二(异步)、 使用spawn_callback(gen) 调用协程函数,需要在IOLoop运行的时候才能够使用该方法。四、Requ原创 2020-10-16 15:52:59 · 946 阅读 · 0 评论 -
django怎么写单元测试?
从网上找了很多django单元测试的案例,感觉不是很好用,于是自己写了一套测试方法,只需要传uri 、请求方式、参数即可一键对所有接口进行测试。from django.test import TestCase# Create your tests here.# coding:utf-8from django.test import TestCase, Clientimport osimport requestsimport jsonuser = "1234567"host =原创 2021-04-20 18:02:54 · 698 阅读 · 2 评论 -
django-admin 后台删除model触发事件、重写admin删除按钮
列表删除按钮:编辑删除按钮:列表删除按钮和编辑删除按钮功能统一:from django.contrib import adminclass SchoolClassAdmin(admin.ModelAdmin): verbose_name = "班级" list_display = ("id", 'grade', 'num', 'school') list_filter = ('grade', 'num',) actions = ['really_delete_原创 2021-03-18 14:41:57 · 1661 阅读 · 0 评论 -
python环境集成redis
文章目录1. 使用连接池连接redis2. 使用sorted set1) 添加元素2) 获取sorted set指定key的结果集1. 使用连接池连接redis安装redispip install -i https://pypi.tuna.tsinghua.edu.cn/simple redis==3.5.3import redisfrom django.conf import settingsclass ConnectionPoolUtils: # 初始化一个连接池,全局唯一原创 2021-03-11 16:21:44 · 637 阅读 · 1 评论 -
leet-code 两个线程交替打印FooBar
文章目录一、题目二、原理解析一、题目交替打印FooBar两个不同的线程将会共用一个 FooBar 实例。其中一个线程将会调用foo()方法,另一个线程将会调用bar()方法。请设计修改程序,以确保 “foobar” 被输出 n 次。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/print-foobar-alternately著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。二、原理解析 可以设置两把锁给分别给f原创 2021-03-05 11:40:40 · 1021 阅读 · 3 评论 -
python实现微信扫码支付完整流程
文章目录一、支付前要做的准备二、发起微信支付1. 生成支付二维码2.签名加密方式,将Key 和参数进行混合加密3.out_trade_no为微信平台那边需要的订单号4.nonce_str 为我们商户提供的32位以内的随机字符串三、前端回调提示用户支付成功四、 云服务平台微信通知微信官方开发文档: https://pay.weixin.qq.com/wiki/doc/api/native.php?chapter=6_1一、支付前要做的准备我们需要准备的东西:微信开放平台申请应用的appid ,原创 2021-03-04 15:05:49 · 11632 阅读 · 3 评论 -
怎么重写django-admin后台model的外键查询逻辑?
我在django后台,页面新增或者修改记录时,会输入数据到指定的model里,当前系统有2个用户角色。现在我只需要显示系统角色为教师的用户,重写 admin下的 render_change_form()方法,改写获取本Model下的外键逻辑。model:class SysUser(TimestampModel): name = models.CharField(verbose_name='用户昵称', max_length=Constant.db_name_length, null=Tru原创 2021-03-01 15:33:23 · 695 阅读 · 0 评论 -
django死锁问题: Lock wait timeout exceeded; try restarting transaction 怎么解决?
文章目录1. 背景2.事故原因3. 解决方法1. 背景今天在测试接口的时候,出现如下问题:An error occurred in the current transaction. You can't execute queries until the end of the 'atomic' block.查看error.log日志,出现如下问题:Lock wait timeout exceeded; try restarting transaction 我的代码class RestP原创 2021-03-01 10:50:34 · 4110 阅读 · 6 评论 -
docker部署Django应用
文章目录1. 环境准备获取python 3.7 镜像目录结构2. 使用dockerfile构建镜像3. 开始构建1) 上传文件4. 验证1. 环境准备python 3.7 镜像dockerfilefilezilla 工具获取python 3.7 镜像docker pull python:3.7目录结构mysite project里包含了一个user应用,目录结构如下2. 使用dockerfile构建镜像在保证django应用可以正常启动的情况下,使用dockerfile构原创 2021-02-04 11:26:05 · 477 阅读 · 2 评论 -
django-admin后台目录菜单过多怎么办?
文章目录1. 背景分析最原始的目录结构改造之后的目录结构最终达到的效果2. 原理分析以及实现思路3. 提升可配置性4. 核心算法5. 完整代码如下6. 注意事项1) simpleui的使用, 在installed_apps里需要放在第一位,否则不生效2) 配置的app_label要保证唯一。3) 如果有model在adminsite中移除了,那么在menu_define的models里面也要移除掉对应的model1. 背景分析 随着admin后台二级菜单的增多,我们会发现管理起来会非常的麻烦原创 2021-01-29 14:51:05 · 1740 阅读 · 0 评论 -
python+redis防止请求重复提交、提交间隔时间为3s
文章目录1.添加redis配置2.自定义一个redis连接池3. 自定义装饰器,用来标注方法4. Jmeter测试 在很多场景下,会出现用户不小心点击过快的情况下,请求出现重复提交的问题,为了保证系统的数据一致性,可以对在一瞬间发起多次的请求进行拦截,并提示操作频繁,请稍后重试等。 实现原理 1) 对于使用session的系统,我们可以将用户信息存储到session里,并指定的name为student, key 的指定方式: user_id: view_obj.class:func.nam原创 2021-01-26 22:45:00 · 1646 阅读 · 0 评论 -
找出10000以内的所有完数,如: 6=1+2+3(Python+Java实现)
文章目录1.题目2. 思路3. 代码实现1.题目 一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如6=1+2+3.编程找出1000以内的所有完数。2. 思路 遍历指定范围的所有项,将每一项获取因子后,用因子与该数作减法,如果能够正好减到0,那么该数就为完数!3. 代码实现# 一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如6=1+2+3.编程找出1000以内的所有完数。from distlib.compat import raw_inputdef find_num原创 2021-01-22 17:13:36 · 4319 阅读 · 2 评论 -
windows环境下怎么切换python版本?
在系统变量path中添加2个变量, path为安装路径下的Scripts和根目录, 因为默认安装到了C盘,只需要将路径复制过来即可:C:\Users\Administrator\AppData\Local\Programs\Python\Python35\Scripts\C:\Users\Administrator\AppData\Local\Programs\Python\Python35\选择系统变量的Path添加路径:添加完毕后,再次打开cmd,输入python:...原创 2021-01-19 16:38:21 · 2053 阅读 · 0 评论 -
python的__dict__、__name__和__file__的用法和区别详解
文章目录1. __dict__的用法1) 用在文件上2) 用在类上3) 用在类的对象上2.__name__的用法3.__file__的用法1. __dict__的用法 __dict__可以作用在文件、类或者类的对象上,最终返回的结果为一个字典。1) 用在文件上 能够获取到文件里所有的字典、元组、列表等属性,返回结果为一个字典。如,返回demo_test_dict文件里所有定义的字典、元组、列表等信息,from polls.python_study.study__dict__and__name_原创 2021-01-19 14:53:27 · 3823 阅读 · 1 评论 -
git tag 应用实战
文章目录1. tag介绍2. 常用命令1. tag介绍 tag相当于给当前代码执行一次快照,将当前代码的通过tag的形式来控制起来,利用tag的好处在于,如果上线有突发问题,在短时间内无法获取到排查,也可以通过tag来回退版本。这样能够保证代码能够持续管理和发布。2. 常用命令 1) 对当前最新代码打一个tag。git tag -a v0.1.0.20210115.01 -m "first demo" 2) 查看所有本地tag。...原创 2021-01-15 15:09:46 · 483 阅读 · 0 评论 -
多级菜单目录设计(二)之拖拽菜单设计原理解析
文章目录原创 2021-01-06 09:01:43 · 1140 阅读 · 5 评论 -
用python实现一个合成django所有迁移文件脚本
文章目录一、背景二、实现版本1.0目录结构完整代码效果展示一、背景 django的迁移文件是用来将model的相关操作转换为脚本写入到数据库中,不需要使用sql就能够帮我们完成对数据库的操作。当迁移文件过多的时候, 整理起来会显得比较凌乱,因此我想使用python写一个脚本来合并那么多文件。二、实现版本1.0 将除了第一个文件以为的所有迁移文件里的operations列表里的内容合并到一个新建的文件里。目录结构完整代码import os# 列出所有文件first_file =原创 2020-12-25 11:46:24 · 404 阅读 · 0 评论 -
怎么解决django的admin后台二级菜单导航栏的排序问题?
apps_index = ["User", "Partner", "ResourceDeclare", "Resource", "ResourcePackage", "ResourceToPackage", "PackageToPackage", "ConfigureCustomTemplate", "ConfigureCustomTemplateDetails", "TagToResource", "LevelToContent", "Course.原创 2020-12-16 22:02:52 · 5236 阅读 · 2 评论 -
django使用ImageFied上传并优化显示图片
文章目录一、上传图片指定upload_to二、配置resource目录访问图片资源三、优化图片显示一、上传图片指定upload_to file = models.ImageField(upload_to=resource_upload_to, verbose_name="资源文件")resource_upload_to 为要上传到resource目录下的路径, 可以自己指定,也可以通过随机数或者md5的方式来保证上传的文件唯一, 如下: def resource_upload_to(inst原创 2020-12-15 22:39:07 · 657 阅读 · 0 评论 -
centos7 安装 python 3.7 完整教程
文章目录一、下载安装的压缩文件二、开始安装问题1: 执行./configure时,出现没有c编译器的问题问题2: 安装gcc,执行./configure成功后,继续执行 make && make install 命令,然而还是报错: zlib not available问题3:按回车后,因为没事了,结果发现还是报错: 找不到 wget!问题4: 安装完毕后,使用python -v命令还是显示出默认的python编译器!一、下载安装的压缩文件地址: linux环境下各版本原创 2020-12-07 15:49:16 · 17367 阅读 · 0 评论 -
mongodb(一)安装、创建、连接数据库、增删改查、常用指令
文章目录一、mongodb下载安装二、安装依赖创建数据库一、mongodb下载安装下载地址: 各版本的mongodb下载地址选择版本:2.定义一个存放Log的文件:在安装路径输入命令:F:\mongodb\mongodb-win32-x86_64-3.4.24\bin>mongod --dbpath=F:\mongodb\mongodb-win32-x86_64-3.4.24\data\db --logpath=F:\mongodb\mongodb-win32-x86_6原创 2020-11-30 16:25:10 · 419 阅读 · 0 评论 -
python面试题大全
文章目录1. python函数中的 *args 与**kwargs有什么区别?2. 什么是python解释器?3. 什么是源代码? 什么是字节码?4. 什么是PVM?5. python程序的执行流程?6. CPython、Jython、IronPython有什么区别?1. python函数中的 *args 与**kwargs有什么区别?答: *args 用来将元素打包成tuple来给函数处理, ** kwargs将参数打包成dict来给函数处理。2. 什么是python解释器?答: pyt原创 2020-11-16 09:14:55 · 1433 阅读 · 2 评论 -
django合并两个queryset
文章目录问题描述场景展示解决方案问题描述 在项目中,我遇到了一个问题,就是需要将不同条件的查询进行汇总,如果对每一个queryset中的结果进行遍历,然后再汇总,会相当的麻烦棘手。 在django中,其实有对queryset的操作, 比如取并集、交集等运算操作, queryset是modell.query下的一个工具类:from django.db.models.query import QuerySet场景展示queryset1:res1 = InvoiceHead.objects.f原创 2020-11-14 16:46:53 · 2047 阅读 · 0 评论 -
django配合apscheduler实现定时任务
文章目录安装依赖程序实现安装依赖django版本: 2.0.13 apscheduler 版本: 2.1.2pip install -i https://pypi.tuna.tsinghua.edu.cn/simple Django==2.0.13pip install -i https://pypi.tuna.tsinghua.edu.cn/simple apscheduler==2.1.2程序实现可配置的croncron_schedule()方法里有一个add_cron_jo原创 2020-11-11 16:56:20 · 866 阅读 · 0 评论 -
django使用orm实现条件搜索和模糊匹配
文章目录1. 条件搜索1) 等值比较2) 不等于比较3) 完整案例2. 模糊匹配1. 条件搜索 使用条件搜索时,可以直接使用filter链来过滤掉满足条件的记录,因为每次filter()的结果仍然是一个QuerySet,因此可以根据参数有无,来添加filter。 先不添加任何搜索条件获取一个QuerySet。invoice_heads = InvoiceHead.objects.filter( resource_uid=resource_uid,原创 2020-11-10 15:43:19 · 3879 阅读 · 0 评论 -
django post请求报错: You cannot access body after reading from request‘s data stream
文章目录问题描述问题重现解决方法问题描述 在使用request.body获取raw里的Json时,如果你在获取的时候又直接对body作修改,那么会出现此错误!官方解释为:Accessing request.POST or request.REQUEST inside middleware from process_request or process_view will prevent any viewrunning after the middleware from being able to原创 2020-11-06 11:25:50 · 6188 阅读 · 2 评论 -
解决django前后端一体和前后端分离(前端vue)post请求报403 forbidden的问题
文章目录前后端一体1) 使用templates显示前端html页面2)定义post请求的Form表单3) 跨域攻击原理分析4) 解决方法前后端分离前后端一体1) 使用templates显示前端html页面 在setings里添加配置, dirs为指定模块下的templates目录文件夹:# 配置dbTEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates',原创 2020-11-05 10:09:53 · 3857 阅读 · 1 评论 -
tornado基础入门(五) escape在tornado框架中发挥的作用
文章目录完整代码:import tornado.web'''tornado的 escape用法'''if __name__ == "__main__": data = {"name": "zhangzhengbing", "age": 20} # 1. python对象与json互相转换 # 转义为Json data = tornado.escape.json_encode(data) print(data, "类型为:", type(data))原创 2020-10-27 10:31:49 · 741 阅读 · 0 评论 -
基于tornado实现websocket通信
文章目录一、什么是websocket?二、基于tornado实现websocket通信1.WebsocketHandler学习1\) WebSocketHandler.open()2\) WebSocketHandler.on_message(message)3\) WebSocketHandler.on_close()4\)WebSocketHandler.write_message(message, binary=False)5\)WebSocketHandler.close(code=None,re原创 2020-10-22 16:25:08 · 3241 阅读 · 11 评论 -
python对列表中的元素(字典)进行排序
1. 按照字典元素中的t值的下标大小进行排序 由于t值是字符串类型,那么需要将下标截取出来,然后再对name进行排序a = [ { "value": "用途", "name": "t4" }, { "value": "期初累计摊额", "name": "t10" }, { "value": "原值", "name": "t5" }, ...原创 2020-10-20 10:13:19 · 15159 阅读 · 0 评论 -
tornado基础入门(四) tornado在项目中的分层实现
文章目录问题概述代码小结改进方案项目目录结构代码小结问题概述 在项目中,我们一般会将项目进行分层,比如将视图放在一个文件夹下,路由放在一个文件里,全局的配置单独拎出来等,而不是将tornado的视图、路由、配置都放在一个文件里,然后main方法启动。 tornado程序结构: 项目文件{ -----视图(handler) -----路由(application) -----配置(config: 端口)原创 2020-10-20 09:18:33 · 686 阅读 · 0 评论 -
Tornado基础入门(三) 用户身份验证框架、防止跨域攻击
文章目录一、安全cookie机制一、安全cookie机制原创 2020-10-16 16:26:19 · 894 阅读 · 3 评论 -
Tornado入门基础(一) 安装、工作原理
一、Tornado简介 tornado是一个高性能的基于Python的web服务器,通过linux的epoll工具,对tornado的socket进行有效的异步非阻塞式管理,实现C10K的目标,即一台服务器每秒能够处理10000并发。 适用场景: 1. 用户量大,高并发。 2. 大量的HTTP持久连接,HTTP1.1协议默认的为长连接。二、手写第一个Helloword程序 服务器工作原理:...原创 2020-10-13 16:49:11 · 2747 阅读 · 0 评论 -
数据结构单链表操作(增加、删除、遍历节点)(python)
使用python实现一个链表,需要具备如下功能:1. 可以在头部、尾部或者指定位置插入节点。2. 遍历链表。# 初始化一个节点class Node(object): def __init__(self, val): self.val = val self.next = None# 定义链表类class SingleLinkedList(object): def __init__(self): self.heade.原创 2020-10-09 16:26:32 · 3437 阅读 · 0 评论 -
python-django解决浏览器中文文件名乱码下载不出来文件的问题
使用requests.get(url) 获取到文件,然后设置Content-type='application/octet-stream', Content-Disposition='attachment;filename=+filename,完整代码如下:from django.http import FileResponseimport requests# 下载附件def file_down(request, uid=None): resource_url = "ur...原创 2020-10-09 08:42:01 · 1392 阅读 · 0 评论 -
多级菜单目录详细设计python+mysql数据库(一)
一、数据库设计原创 2020-09-23 08:48:55 · 2763 阅读 · 8 评论 -
leet-code Z 字形变换详解
一、题目 将一个给定字符串根据给定的行数,以从上往下、从左到右进行Z 字形排列。比如输入字符串为 "LEETCODEISHIRING"行数为 3 时,排列如下:L C I RE T O E S I I GE D H N之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:"LCIRETOESIIGEDHN"。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/zigzag-conver...原创 2020-09-16 11:27:23 · 765 阅读 · 0 评论 -
Flask 安装、配置、第一个demo
一、Flask 1. 如果需要多个开发环境,那么可以先安装虚拟环境pip install -i https://pypi.tuna.tsinghua.edu.cn/simple --trusted-host pypi.tuna.tsinghua.edu.cn virtualenv 2. 要在Windows上激活相应的环境,可以使用以下命令:venv\scripts\activate 3. 安装Flask:pip install -i https://...原创 2020-09-10 17:34:53 · 236 阅读 · 0 评论 -
leet-code 找出数组中所有可以使数字和为target的组合
题目: 给定一个数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。语言: python解题思路: 遍历 数组,用target 减每一个数组中的每个元素, 判断差是否在该数组中, 用元组去存i和差,并判断(差,i) 是否已经在结果集中,如果在的话,那么就不添加到结果数组中,如果不存在才将(i,差)添加到结果集中。candidates = [1, 2, 4, 3,...原创 2020-09-10 11:15:52 · 2153 阅读 · 0 评论 -
django问题大全
1. 序列化时,class Meta: 下的model 可以为多个Model嘛? 不可以,只能有一个model。 如果是一对多的模式,可以直接使用直接序列关联的外键。 detail为关联的外键的model detail = DeitalSerializer() 如果是多对多的模式,那么用serializers.SerializeMethodField()获取到一个新的对象schedule, 然后再使用get_schedule方法来获取到所有的对象,obj.schedul...原创 2020-09-09 14:36:20 · 756 阅读 · 0 评论