在最近的Django的學習中,慢慢的開始踩坑,開此欄,專爲收納Django的坑,在之後的學習中以便警示。(使用工具爲pycharm專業版2018.2.4,python3.5.2,Django版本2.1.3)html
一、關於提取表單的數據。前端
在前端經過表單提交數據,請求爲post的請求,method="post",這裏的post不用區分大小寫:python
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,代碼爲:django
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,頁面會返回錯誤信息以下:安全
二、關於CSRF(跨站請求僞造)驗證失敗服務器
在一開始的測試中,每次訪問服務器,網頁提示CSRF驗證失敗,請求終止。這個CSRF是Django的一種安全機制,能夠必定程度的防止其餘網站僞造入侵。工具
具體錯誤以下:post
這些提示並無看懂什麼意思,但也按照提到的某些關鍵詞在django中設置過,好比把DEBUG=True該爲DEBUG=False等等,最終都沒成功。學習
最後是把關於那個CSRF驗證的機制的代碼給註釋掉就解決這個問題,以下:測試
那樣註釋掉是一種逃避的方式,最好不要採起,還有一種就是在html頁面表單旁加 {% csrf_token %}就能夠解決。