摘要: 异同 当我们在form组件用clean函数(无论是局部或者全局钩子函数)验证字段是否有错误时,如果字段正确则最终clean函数要返回该字段值(全局钩子返回self.cleaned_data),是为了放入form对象的cleaned_data字典中,以供后续使用。 出现错误则有两种选择 raise V 阅读全文
posted @ 2020-11-05 00:14 lymmurrain 阅读(296) 评论(0) 推荐(0) 编辑
摘要: 前置知识 ajax形式post提交数据的content-type有主要常用三种 application/x-www-form-urlencoded multipart/form-data(上传文件) application/json 原生的django对于content-type为applicati 阅读全文
posted @ 2020-11-05 00:08 lymmurrain 阅读(1873) 评论(0) 推荐(0) 编辑
摘要: 前言 Vue项目一般用于实现前端的单页面富应用,其打包后的文件可简单看作静态文件,所以可以通过Nginx部署,当然也可以通过django部署(毕竟本质上还是一个html文件及各CSS,JS文件的集合)。不过前后端的耦合性以及性能就比nginx动静分离的差一点。但平时开发的时候可以这样部署,十分方便快 阅读全文
posted @ 2020-10-28 23:53 lymmurrain 阅读(1522) 评论(0) 推荐(0) 编辑
摘要: 别做django html组件化开发的梦 django模板include 与extend标签最好只是在很简单,如只有html代码,无css,js情况下使用,这两个标签只能让你减少一些简单的重复的HTML代码的编写。 千万不要做用这俩完成像Vue一样的组件化开发的美梦(当然可能只有我会这么傻)。我个人 阅读全文
posted @ 2020-10-21 17:17 lymmurrain 阅读(233) 评论(0) 推荐(0) 编辑
摘要: 使用ThreadPoolExecutor可以简洁地完成简单多线程任务,获取线程返回值的顺序有两种,一种是按线程创建顺序返回,第二种是按线程完成顺序返回(虽然返回顺序不同,执行时间应该是一样的)。 按线程创建顺序返回 import time import concurrent.futures time 阅读全文
posted @ 2020-10-13 12:40 lymmurrain 阅读(4374) 评论(0) 推荐(1) 编辑
摘要: 最近在研究协程,想写个协程实现的爬虫,选用aiohttp,对aiohttp中 ClientSession使用有些不解,然而中文资料有点少,大多是写怎么用就没了,不是很详细,就直接看英文官网了。 aiohttp可用作客户端与服务端,写爬虫的话用客户端即可,所以本文只关于aiohttp的客户端使用(发请 阅读全文
posted @ 2020-10-12 21:35 lymmurrain 阅读(14251) 评论(2) 推荐(3) 编辑
摘要: 递归排序核心 递归排序的核心是 分与合 分的最终结果 就是将原数组中每一个数字分作一个数组, 合就是 所有小数组不断排序,合并的过程。 合并的过程是先将两个含有一个数字的数组排序,合并(每次比较两个数组的最小值,将更小值加入新数组中,当有一个数组无元素,则将还有元素的数组追加到新数组中即完成排序,合 阅读全文
posted @ 2020-09-19 14:37 lymmurrain 阅读(637) 评论(0) 推荐(0) 编辑
摘要: celery使用eventlet模式task中操作django的orm报错解决 若celery使用eventlet模式task中操作django的orm会出现报错如下 django.db.utils.DatabaseError: DatabaseWrapper objects created in 阅读全文
posted @ 2020-09-19 14:34 lymmurrain 阅读(823) 评论(1) 推荐(0) 编辑