Django中CSRF_TOKEN和Cookie和Session实例浅析
1、在windows命令行窗口创建django工程,并创建应用,前提是电脑装好了
python3及Django,命令如下:
django-admin startproject djcsrf
cd djcsrf
python mange.py startapp book

2、使用PyCharm打开工程,在book应用文件夹的models.py文件,编写模型类,代码如下:
from django.db import models# Create your models here.class BookInfo(models.Model): name = models.CharField(max_length=20) author = models.CharField(max_length=10)

3、在PyCharm中打开终端,生成数据库迁移文件,进行数据库迁移
python manage.py makemigrations
python manage.py migrate

4、在book应用文件夹,创建forms.py文件,在forms.py中编写表单类,代码如下:
from django import formsfrom .models import BookInfoclass BookInfoForm(forms.ModelForm): class Meta: model = BookInfo fields = ('name','author')
这个表单类对应第2步的模型类,展示name和author两个字段

5、在django工程根目录,创建templates文件夹,文件夹创建‘bookinfo.html’
内容如下:
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title></head><body> <form action = "" method="post"> {% csrf_token %} {{bk}} <input type="submit"> </form></body></html>
{% csrf_token %}是因为默认django是不允许post数据,加上这个就可以了,会生成一个随机token字符串存储在cookie,看下面步骤会看到

6、在book应用文件夹的views.py文件,编写视图函数,代码如下:
from django.shortcuts import renderfrom .forms import BookInfoFormfrom django.http import HttpResponse# Create your views here.def bookform(request): if request.method=='GET': bk = BookInfoForm() request.session['my'] = 'hi' return render(request,'bookinfo.html',{'bk':bk}) else: response= HttpResponse('1') print(request.session.get('my')) response.set_cookie('hello','world',60) return response
1、这里在GET请求时候设置session,在POST请求时读取session,浏览器的
Cookie中保存sessionID
2、在POST请求时候设置一个Cookie

7、在book应用文件夹创建urls.py文件,urls.py代码如下:
from django.conf.urls import urlfrom . import viewsurlpatterns = [ url(r'bookinfo/',views.bookform),]

8、在工程的urls.py文件中编写代码,包含book应用的urls.py文件,工程的urls.py文件如下:
from django.conf.urls import url,includefrom django.contrib import adminurlpatterns = [ url(r'^admin/', admin.site.urls), url(r'book/',include('book.urls')),]

9、运行django服务器
python manage.py runserver

10、浏览器输入网址访问
http://127.0.0.1:8000/book/bookinfo/

11、提交数据后,在开发者工具-application-cookie如下,这样加强理解token、
cookie、session机制
