Django
文章平均质量分 63
pygodnet
Python学习交流公众号:Hello Python
展开
-
sqlmap检测SQL注入及解决方案(Django)--超详细
一:场景、演示场景:查询等拼接SQL和参数的问题,博主为了检测,这里写一个有注入风险的接口,请勿模仿class PostMan(View): def get(self, request): aa = request.GET.get('aa') with connections['default'].cursor() as cursor: sql = 'select * from sys_dict where pid = %s'%(aa)原创 2021-01-07 09:11:41 · 1048 阅读 · 0 评论 -
字典表设计及Django中的实现--超详细
一:字典表使用场景维护系统中的某些变量,特别是后期可能修改的变量。如果这些变量写死在代码里面将会变得难以维护,所以要将其从代码中抽离出来。前端下拉框,多选框等用户交互数据。维护目录树,分类等。二:字典表设计CREATE TABLE `sys_dict` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'id', `pid` int(11) DEFAULT '0' COMMENT ' 父ID ', `dataName` varchar(2原创 2020-12-18 15:30:57 · 1042 阅读 · 0 评论 -
Django中使用jwt--超详细
一:什么是jwt?jwt被广泛用于各类鉴权中,其中jwt token如下所示:b'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VybmFtZSI6ImFkaW1uIn0.MeQOdDiiI39mBpgbFNnBVNdJMDhUpRTxziPeFJKB2fA'jwt token JWT生成的Token是一个用两个点(.)分割的长字符串 点分割成的三部分分别是Header头部,Payload负载,Signature签名:Header.Payload.Sig原创 2020-12-15 09:21:05 · 5684 阅读 · 4 评论 -
Django全局异常捕获中间件
一:收集全局异常的意义?系统总有些错误和异常是意料之外的,需要收集相应信息,并返回错误(避免无响应),这里采用中间件的方式记录所有异常信息,包括请求体等信息。二:配置中间件的使用以及logging的配置不再赘述。直接上代码(记得将LogMiddle添加到settings):这里捕获异常,并返回json格式信息,class LogMiddle(MiddlewareMixin): """ 全局错误日志中间件 """ def process_exception(self,原创 2020-12-15 09:03:12 · 1169 阅读 · 2 评论 -
真香-- 基于schema的复杂请求参数,请求体,字典校验方法
你还在怎么校验请求体,请求参数,复杂嵌套字典?if…else…,for…,oh No,小心leader给你加“鸡腿”,今天给大家分享一种博主使用很久的参数校验方式。具有无限嵌套一次校验,配置简单可读性高,兼容函数等诸多有点场景:校验以下格式的示例参数my_data = { "header_data": { "user_name": { "first_name": "请关注下面这个公众号", # 必填 全中文,少于20字 "seco原创 2020-12-04 09:54:43 · 1106 阅读 · 0 评论 -
Django Pycharm 修改html后立即刷新页面
Django Pycharm 修改html后立即刷新页面写项目时需要页面实时刷新,而不是频繁人肉重启项目。测试过dj-static,django-livereload-server,此处使用livereload包,简单好用。仅在debug=False时生效,不过可以满足调试需求了。安装pip install livereload如果报错:Using legacy ‘setup.py install’ for livereload, since package ‘wheel’ is not in原创 2020-11-25 09:14:54 · 2471 阅读 · 0 评论 -
Django sql注入及解决方案
Django sql注入及解决方案前言:sql注入多产生在拼接sql语句的场景,对数据库进行越权访问或其他危险操作,危害极其严重,本文介绍在django中sql注入的预防措施。示例:简单的查询语句:my_connection = connections['default']with my_connection.cursor() as cursor: sql = "select * from my_table where id=%s limit 10"%(pk) cursor.exe原创 2020-11-24 09:46:07 · 2390 阅读 · 0 评论 -
Django接口缓存私有化缓存
Django 接口缓存Django业务中部分接口,需要优化相应速度,减少db压力,采用django-api-cache来做接口缓存,实测配置简单,效果很好,上代码一:安装pip install django-api-cache二:在此使用redis做缓存,也可使用django的其他缓存pip install django-redis# settings.py 中加入如下配置CACHES = { "default": { "BACKEND": "django_redi原创 2020-10-30 15:29:19 · 504 阅读 · 0 评论 -
Django定时任务
Django定时任务安装django-crontab并加入到settings.py的INSTALLED_APPSpip install django-crontabsettings.py中加入django-crontab的命令即可,命令参考linux crontabCRONJOBS = [ ('47 11 * * *', 'django.core.management.call_command', ['closepoll'],{},'>> /var/run.log'),]原创 2020-10-30 11:48:31 · 216 阅读 · 0 评论 -
Python脚本中调用Django ORM
Python脚本中调用Django ORMimport osif __name__ == '__main__': os.environ.setdefault("DJANGO_SETTINGS_MODULE", "BMS.settings") import django django.setup() from app.models import Book #引入也要写在上面三句之后 books = Book.objects.all() print(bo原创 2020-10-30 11:39:20 · 346 阅读 · 0 评论 -
Django查询优化级联查询多条件查询
Django查询优化级联查询多条件查询一:构造Q查询from django.db.models import Qquery_params = Q(is_zs=True)if create_peoples: query_params &= Q(aa__in=create_peoples)if master_title: query_params &= Q(bb__contains=master_title)lit = AA.objects.exclude(is_o原创 2020-10-30 11:26:47 · 432 阅读 · 0 评论 -
django中LoginRequiredMixin,logout的使用
LoginRequiredMixin提供登录状态验证,没有登录跳转登录链接,如果登陆了则进行后续操作from django.contrib.auth.mixins import LoginRequiredMixinfrom django.contrib.auth.views import logoutfrom django.http import HttpResponse, JsonRe...原创 2018-10-18 11:35:54 · 2622 阅读 · 0 评论 -
django中类视图ListView的使用
ListView 用于获取数据表中的所有数据,返回一个列表。from django.views.generic import ListViewfrom course.models import Courseclass CourseListView(ListView): """通用视图""" model = Course #指定类 context_objec...原创 2018-10-18 11:18:20 · 7409 阅读 · 0 评论