django
江洗河
这个作者很懒,什么都没留下…
展开
-
Django url相关笔记整理
URL映射的时候指定默认参数: 使用path或者是re_path的后,在route中都可以包含参数,而有时候想指定默认的参数,这时候可以通过以下方式来完成。示例代码如下: from django.urls import path from . import views urlpatterns = [ path('shoe/', views.number), path('shoe...翻译 2019-06-18 23:55:38 · 170 阅读 · 0 评论 -
自定义中间件和上下文处理器
什么是中间件? 中间件是介于request与response处理之间的一道处理过程,它是一个轻量、低级别的插件系统,并且在全局上改变django的输入与输出。每个中间件组件都负责做一些特定的功能。 比如在request到达视图函数之前,可以使用中间件来做一些相关的事情。比如可以判断当前这个用户有没有登录,如果登录了,就绑定一个user对象到request上。 也可以在response到达浏览器之前...原创 2019-07-20 20:22:58 · 113 阅读 · 0 评论 -
Cookie和Session
cookie:在网站中,http请求是无状态的。也就是说即使第一次和服务器连接后并且登录成功后,第二次请求服务器依然不能知道当前请求是哪个用户。cookie的出现就是为了解决这个问题,第一次登录后服务器返回一些数据(cookie)给浏览器,然后浏览器保存在本地,当该用户发送第二次请求的时候,就会自动的把上次请求存储的cookie数据自动的携带给服务器,服务器通过浏览器携带的数据就能判断当前用户是...原创 2019-07-16 22:14:21 · 91 阅读 · 0 评论 -
网络安全相关(CSRF、XSS、SQL注入,Clickjacking)
CSRF攻击 CSRF攻击概述: CSRF(Cross Site Request Forgery, 跨站域请求伪造)是一种网络的攻击方式,它在 2007 年曾被列为互联网 20 大安全隐患之一。其他安全隐患,比如 SQL 脚本注入,跨站域脚本攻击等在近年来已经逐渐为众人熟知,很多网站也都针对他们进行了防御。然而,对于大多数人来说,CSRF 却依然是一个陌生的概念。即便是大名鼎鼎的 Gmail, 在...原创 2019-07-16 21:51:21 · 274 阅读 · 0 评论 -
类视图相关整理
类视图 在写视图的时候,Django除了使用函数作为视图,也可以使用类作为视图。使用类视图可以使用类的一些特性,比如继承等。 View: django.views.generic.base.View是主要的类视图,所有的类视图都是继承自他。如果我们写自己的类视图,也可以继承自他。然后再根据当前请求的method,来实现不同的方法。比如这个视图只能使用get的方式来请求,那么就可以在这个类中定义ge...原创 2019-07-16 09:05:33 · 113 阅读 · 0 评论 -
Request源码浅析
WSGIRequest对象 Django在接收到http请求之后,会根据http请求携带的参数以及报文信息创建一个WSGIRequest对象,并且作为视图函数第一个参数传给视图函数。也就是经常看到的request参数。在这个对象上我们可以找到客户端上传上来的所有信息。这个对象的完整路径是django.core.handlers.wsgi.WSGIRequest。 #views.py from dj...原创 2019-07-16 08:50:15 · 285 阅读 · 0 评论 -
QuerySet API源码浅析(django)
模型.objects: from django.http import HttpResponse from .models import Book def index(request): print(type(Book.objects)) return HttpResponse("index") 控制台打印信息 <class 'django.db.models.Manage...原创 2019-07-14 21:04:09 · 379 阅读 · 0 评论 -
ORM对数据库的操作
ORM对数据库的基本操作: 添加数据: 只要使用ORM模型创建一个对象。然后再调用这个ORM模型的save方法就可以保存了。 示例代码如下: book = Book(name='西游记',author='吴承恩',price=100) book.save() 查找数据: 所有的查找工作都是使用模型上的objects属性来完成的。当然也可以自定义查询对象。这部分功能会在后面讲到。 根据主键进行查...原创 2019-07-02 19:57:29 · 1114 阅读 · 0 评论 -
DTL相关知识整理初稿
自定义过滤器: 首先在某个app中,创建一个python包,叫做templatetags,注意,这个包的名字必须为templatetags,不然就找不到。 在这个templatetags包下面,创建一个python文件用来存储过滤器。 在新建的python文件中,定义过滤器(也就是函数),这个函数的第一个参数永远是被过滤的那个值,并且如果在使用过滤器的时候传递参数,那么还可以定义另外一个参数。但...翻译 2019-06-24 11:42:03 · 750 阅读 · 0 评论 -
对象池
小整数对象池: 在一个程序中,[-5,256]之间的数字是经常被使用的。因此Python在程序运行过程中,定义好了一个小整数池,也就是说从-5到256之间的数字都是提前在内存中建立好的,不会被系统回收,并且以后你创建了一个变量是在这个范围之内,那么都是同一个对象。同样对于单个字母也是一样的。 示例: a = 1 b = 1 # 以下两个值是一样的 print(id(a)) print(id(b))...原创 2019-07-21 22:38:17 · 82 阅读 · 0 评论