3.高级技巧
大约 1 分钟学习笔记Django
一、表单
1. 表单必填属性
action
: 提交的 URLmethod
: 请求方法, get 或者 postenctype
: 三种编码方式- application/x-www-form-urlencoded 键值对方式
- multipart/form-data 二进制编码
- text/plain 文本方式
2. 处理 request
判断请求方法
request.method
- 值是大写的 POST 、GET 、 PUT 、 DELETE
获取 post 表单数据
request.POST[key]
或者request.POST.get()
request.POST 返回的是一个字典
二、 Django 安全策略
1. CSRF 防御机制
settings.py
文件
CSRF : 跨站请求伪造,是一个常见的网络攻击手段。
Django 默认为开启了 防范 CSRF 攻击机制。
对于 GET 请求,一般来说没有这个问题,CSRF 通常是针对 POST 或 PUT 方法的。
2. 处理方式
将防御机制注释
# 'django.middleware.csrf.CsrfViewMiddleware',
使用
@csrf_exempt
装饰器在表单内部加上
{%csrf_token%}
三、 请求的重定向
http 重定向
- 把原本访问 A 的请求 转给 B
- 状态码 : 301(永久重定向) 302(临时重定向)
Django 快捷方法
redirect(视图,参数) 对应状态码 302
四、 Django 单元测试
Django 的单元测试采用 Python 的标准模块:unittest
。 该模块以类的形式定义测试。
- 主要测试对象:数据模型
- 运行方法:
python manage.py test
- 测试文件: app 目录下的
test.py