Django中CSRF_TOKEN和Cookie和Session实例浅析

2025-11-20 01:31:44

1、在windows命令行窗口创建django工程,并创建应用,前提是电脑装好了

python3及Django,命令如下:

django-admin startproject djcsrf

cd djcsrf

python mange.py startapp book

Django中CSRF_TOKEN和Cookie和Session实例浅析

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)    

Django中CSRF_TOKEN和Cookie和Session实例浅析

3、在PyCharm中打开终端,生成数据库迁移文件,进行数据库迁移

python manage.py makemigrations

python manage.py migrate

Django中CSRF_TOKEN和Cookie和Session实例浅析

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两个字段

Django中CSRF_TOKEN和Cookie和Session实例浅析

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,看下面步骤会看到

Django中CSRF_TOKEN和Cookie和Session实例浅析

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

Django中CSRF_TOKEN和Cookie和Session实例浅析

7、在book应用文件夹创建urls.py文件,urls.py代码如下:

from django.conf.urls import urlfrom . import viewsurlpatterns = [    url(r'bookinfo/',views.bookform),]

Django中CSRF_TOKEN和Cookie和Session实例浅析

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')),]

Django中CSRF_TOKEN和Cookie和Session实例浅析

9、运行django服务器

python manage.py runserver

Django中CSRF_TOKEN和Cookie和Session实例浅析

10、浏览器输入网址访问

http://127.0.0.1:8000/book/bookinfo/

Django中CSRF_TOKEN和Cookie和Session实例浅析

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

cookie、session机制

Django中CSRF_TOKEN和Cookie和Session实例浅析

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢