跨过Django的坑

Posted jiarenanhao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了跨过Django的坑相关的知识,希望对你有一定的参考价值。

在最近的Django的学习中,慢慢的开始踩坑,开此栏,专为收纳Django的坑,在以后的学习中以便警示。(使用工具为pycharm专业版2018.2.4,python3.5.2,Django版本2.1.3)

 

1、关于提取表单的数据。

在前端通过表单提交数据,请求为post的请求,method="post",这里的post经测试,不用区分大小写:

1 <form action="index/" method="post">     #这里不用区分大小写
2 {#<form action={% url "chris" %} } method="POST">#}
3     <input type="text" name="username">
4     <input type="password" name="pwd">
5     <input type="submit" value="submit">
6 </form>

关键部分是在views中提取数据,如获取前端提交的username和pwd,代码为:

def index(request):
    if request.method == POST:   #这里POST一定要大写!
        print("获取到数据了。")
        username = request.POST.get("username")  #这里POST一定要大写!
        pwd = request.POST.get("pwd")            #这里POST一定要大写!
        if username == chris and pwd == 123:
            return HttpResponse(登录成功!)

另外,在获取数据时如果不是大写POST,页面会返回错误信息如下:

技术分享图片

 

 

2、关于CSRF(跨站请求伪造)验证失败

在一开始的测试中,每次访问服务器,网页提示CSRF验证失败,请求终止。这个CSRF是Django的一种安全机制,可以一定程度的防止其他网站伪造入侵。

具体错误如下:

技术分享图片

这些提示并没有看懂什么意思,但也按照提到的某些关键词在django中设置过,比如把DEBUG=True该为DEBUG=False等等,最终都没成功。

最后是把关于那个CSRF验证的机制的代码给注释掉就解决这个问题,如下:

技术分享图片

 

以上是关于跨过Django的坑的主要内容,如果未能解决你的问题,请参考以下文章

跨过Nginx上基于uWSGI部署Django项目的坑

80万次测试工作经验分享,帮你成功跨过测试路上的坑

Django的坑

如何在 Django Summernote 中显示编程片段的代码块?

django中使用filter()(即对QuerySet操作)时踩的坑

如何用ffmpeg截取视频片段&截取时间不准确的坑