我正在为django网站编写移动应用程序。据我所知,django中的每个表单都有一个CSRF令牌密钥用于保护。当使用浏览器导航网站时,服务器会为用户呈现一个密钥。
我感到困惑的是移动应用程序,我们不需要从网站查看预设层。我只想做一个HTTP帖子来发送数据。我知道我可以使用csrf_exempt
来禁用该表单的csrf。或者我可以创建另一个视图来为我渲染csrf标记,但这样我需要额外的解析和http请求。那么有更好的方法吗?
感谢您的时间
答案 0 :(得分:2)
如果您的移动应用正在呈现模板,则可以将{% csrf_token %}
添加到呈现表单的模板中。如果您没有使用表单而只是发布数据,您可以像上面那样创建令牌,然后简单地将其与数据一起发布。如果您没有使用模板来创建移动应用程序的标记,那么请使用csrf_exempt(如果您只是定期向服务器发布数据)。
显然必须有一个处理发布数据的视图,但即使您使用通用视图,您仍然可以包装该视图(例如在您的urls.py中)并获得使用csrf_exempt < / p>