django
zhubaoJay
share...
展开
-
Django请求生命周期
django的请求生命周期如下图,记录笔记,后续翻阅。原创 2019-12-04 19:32:35 · 194 阅读 · 0 评论 -
django ORM 正向查询与反向查询
现有三张表关系如下:from django.db import models# Create your models here.from django.db import modelsclass BaoModel(models.Model): age = models.IntegerField() address = models.CharField(max_le...原创 2019-07-20 15:25:20 · 3864 阅读 · 0 评论 -
rest_framework学习之分页(Pagination)
DRF提供了默认的分页空间给开发者使用,只有在使用通用视图(generic views)或视图集(viewsets)时才会自动触发分页控件,若使用的是APIView,需要自己实现分页API,可参考GenericAPIView源码。使用generic views来默认调用pagination我们可以在settings.py中设置全局的分页控件配置,如下:REST_FRAMEWORK ...原创 2019-06-29 10:40:06 · 1477 阅读 · 0 评论 -
rest_framework学习之序列化(Serializer)
什么是序列化?在我看来,序列化就是将复杂的对象数据转化为简单的通用数据格式(如json),这么一个过程就是序列化。反序列化同理。我们看下DRF对序列化解释,序列化器允许将复杂数据(如查询集和模型实例)转换为原生Python数据类型,然后可以轻松地将其呈现为JSON、XML或其他内容类型。序列化器还提供反序列化,允许在首先验证传入的数据之后将解析后的数据转换回复杂类型。PS:还是官方专业...原创 2019-07-01 21:12:33 · 1363 阅读 · 1 评论 -
rest_framework学习之解析器(Parsers)
概述什么是解析器?在DRF中,解析器是一个类列表,当每次接收到请求时,RDF会根据请求头中的Content-type,来指定使用哪钟解析方法去解析数据。当content-type与解析器列表均不匹配时,则会报解析失败。我们可以在settings.py中全局设置解析器列表,如下:REST_FRAMEWORK = { 'DEFAULT_PARSER_CLASSES': ( ...原创 2019-06-21 11:40:07 · 1327 阅读 · 0 评论 -
rest_framework学习之认证(Authentication)&权限(Permissions)
认证和权限控制是web开发中较为重要的知识点,我们看下django rest_framework的认证和权限是如何实现的概述我们知道,在django中,提供内置的认证与权限方式,通过维护几张数据库表(如auth_user、auth_group、auth_permission等),并提供封装好的方法(如:authenticate()、login()、logout())实现认证与权限。re...原创 2019-06-15 11:21:25 · 4803 阅读 · 0 评论 -
django中间件详解
django中间件详解阅读目录 一、什么是中间件 二、中间件的执行流程一、什么是中间件?官方的说法:中间件是一个用来处理Django的请求和响应的框架级别的钩子。它是一个轻量、低级别的插件系统,用于在全局范围内改变Django的输入和输出。每个中间件组件都负责做一些特定的功能。但是由于其影响的是全局,所以需要谨慎使用,使用不当会影响性能。说的直白一点...转载 2019-05-18 17:16:06 · 256 阅读 · 0 评论 -
rest_framework学习之view、APIView、GenericAPIView理解
在django和rest_framework项目中我们经常可以看到view、APIView、GenericAPIView,在此记录下三者关系在说之前,先介绍下FBV和CBVFBV(function base view)我们经常写的视图函数都是FBV,如:def index(request): return HttpResponse()CBV(class base v...原创 2019-05-23 11:30:19 · 1009 阅读 · 0 评论 -
django请求关于数据库连接池共享问题
但凡介绍数据库连接池的文章,都会说“数据库连接是一种关键的有限的昂贵的资源,这一点在多用户的网页应用程序中体现得尤为突出。对数据库连接的管理能显著影响到整个应用程序的伸缩性和健壮性,影响到程序的性能指标。数据库连接池正是针对这个问题提出来的。数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个;释放空闲时间超过最大空闲时间的数据库连接来避免因...转载 2019-03-05 11:55:02 · 1682 阅读 · 0 评论 -
SQL注入原理及防范
SQL注入原理 SQL注入攻击指的是通过构建特殊的输入作为参数传入Web应用程序,而这些输入大都是SQL语法里的一些组合,通过执行SQL语句进而执行攻击者所要的操作,其主要原因是程序没有细致地过滤用户输入的数据,致使非法数据侵入系统。SQL注入产生原因 ①不当的类型处理; ②不安全的数据库配置; ③不合理的查询集处理; ④不当的错误处理;原创 2017-09-30 10:21:11 · 458 阅读 · 0 评论 -
django 前后台交互plus
简单说一下功能:1. 用户可以在页面上查看、新建用户列表;2. 用户信息包括:用户名、编号;3. 编辑和删除后续再做。直接上代码:index.html hello $(document).r原创 2017-03-24 17:33:54 · 679 阅读 · 0 评论 -
django+apache配置
1. 准备工作l 安装apachel 安装mod_wsgi.sol 安装djangol 新建一个django工程(这里就不详细介绍安装了) 2. 配置wsgi.pyimport osimport sysfrom os.path import join,dirname,abspathfrom django.core.wsgi import get_w原创 2017-03-23 19:22:55 · 843 阅读 · 0 评论 -
django+AngularJS+Bootstrap配置
上一篇已经初步搭起来了django,这里我们将前端所用到的静态库配置一下首先,下载angularJS和bootstrap源码,放在如下路径下:{your_app}/static/scripts{your_app}是你的django app的目录,我这里是:/home/zhubao/Code/django_code/hello/app,目录结构参考上一篇《django版hello原创 2017-03-13 16:13:35 · 3297 阅读 · 0 评论 -
django 前后台交互实例
准备工作:前端框架:angularJS+bootstap数据库:sqlite3前端代码:index.html hello hello world! -->原创 2017-03-20 17:28:55 · 10495 阅读 · 1 评论 -
django版hello world
新建一个django工程在目标目录下执行命令django-admin startproject hello成功后会产生如下文件简单说明:Manage.py:工程的管理文件,后续启动工程等命令都是运行这个脚本;Settings.py:工程配置文件;Urls.py:url配置文件; 新建一个appdjango-admin startapp app原创 2017-03-08 15:52:30 · 25529 阅读 · 0 评论