django的跨站请求伪造的中间件是在配置文件settings.py里面配置的。
如下图的红色部分就是。
已经被我注释掉了(现在我将会把它启用)这个中间件的作用是,当被认为某个用户不是自己网站的用户给网站post数据的时候,就会被服务器端禁止掉。为了就是防止那些用户从来没有访问过网站的,直接给网站post数据。要想解决这个问题就是给是属于这个网站的用户加一个标识。不是网站用户的,就不加标识。通常说的给用户加标识也就是token(token的本质就是一个很长的无规律的字符串。),当用户来请求的时候,给用户一个token,下次用户再来请求数据的时候,就会自动带着token过来。这个token也是存在cookie里面的
如果没有分配token时候我们直接从页面登陆,post数据到后台,是会被禁止的。
如下图:
如何给用户分配token。
需要做两步操作,
第一:需要在html页面的form表单加上一句 {% csrf_token %}
第二步 在views里面的函数导入一下 RenderContext
from django.template.context import RenderContext
最后我们在render_to_sponse 加上
context_instance=RenderContext(request)
例如:
通过这样两步操作,当用户来请求的时候,通过在用户的cookie里面写上token,然后当用户下次再来请求的时候。用户就会带着cookie来访问,因此这样就可以识别用户了