了解如何通过正确处理模板并正确渲染Django表单中的“ CSRF令牌缺失”错误。 --- This video is based on the question https://stackoverflow.com/q/77276170/ asked by the user 'jessiepinkman' ( https://stackoverflow.com/u/21214268/ ) and on the answer https://stackoverflow.com/a/77276237/ provided by the user 'Tim' ( https://stackoverflow.com/u/2043298/)在“堆栈溢出”网站上。感谢这些出色的用户和Stackexchange社区的贡献。请访问这些链接以获取原始内容和更多详细信息,例如替代解决方案,有关主题,评论,修订历史记录等的最新更新/开发。 by-sa 4.0'(https://creativecommons.org/licenses/by-sa/4.0/)许可证和原始答案帖子在“ cc by-sa 4.0'(https://creativecommons.org/licenses/licenses/licenses/by-sa/4.0/)下获得许可。如果您似乎有什么事,请随时用vlogize [at] gmail [dot] com写信给我。 ---求解Django表单中的“ CSRF令牌丢失”问题,如果您正在开发涉及表单提交的Django应用程序,则可能会遇到一个令人沮丧的问题:CSRF令牌缺少错误。此错误可能会妨碍功能并阻止有效提交,尤其是在与Twilio之类的API集成以进行电话号码验证时。在本指南中,我们将探讨如何通过在Django模板中正确使用CSRF代币来有效解决此问题。了解CSRF令牌CSRF(跨站点请求伪造)令牌是Django中实现的安全功能,以防止未经授权的命令从Web应用程序信任的用户传输。要成功地验证Django中的表单提交形式,该表单必须包括唯一的CSRF令牌。在我们方案中的常见问题,您已经在HTML模板中包含了{%csrf_token%}标签,但仍在收到CSRF令牌缺失错误。当HTML无法通过Django的模板系统正确渲染时,通常会发生这种情况。解决问题1的步骤。将HTML内容移动到模板文件,而不是直接嵌入HTML在视图功能中,而是应该创建一个专用的HTML模板文件以进行渲染。这是您可以组织项目的方式:创建一个名为verify.html的新模板文件,在模板目录中。如下所示:[[请参阅视频显示此文本或代码代码段]] 2。您应该如何调整代码:[[请参阅视频以显示此文本或代码代码段]]3。确保中间件活动确保django.middleware.csrf.csrf.csrfviewwiewmiddleware在您的django settings.py中启用。此中间件负责处理CSRF代币:[[请参阅视频以显示此文本或代码代码段]]4。一旦设置模板并更新视图,请测试您的表单提交,现在该再次测试表单提交了。您不再应该看到CSRF令牌缺失错误,并且您的表单应成功将数据发送到服务器。结论,通过将HTML正确构建到模板中,并确保正确渲染CSRF令牌,您可以在Django应用程序中解决Pervasive CSRF代币缺少错误。这不仅可以增强安全性,而且通过允许与表格的无缝互动来改善用户体验。随时分享您关于在Django管理CSRF代币的想法或疑问。愉快的编码!