Django之form表單提交並驗證

2021-09-13 15:31:38 字數 2181 閱讀 2252

1.提交的時候會報錯

2. 需要在setting裡面注釋掉一句話,關閉跨站請求檢查。

3. 注釋掉以後,理論上就不報錯了。可我還是卡殼了。

4. 通過在網上找方法,修復錯誤。

原因:表單action欄位沒有以 '/' 結尾,將action 修改為 action="/a/b/"即可修復。將action欄位修正如下:

這裡需要說明一下,在django裡面,會預設在瀏覽器的後面加乙個/. 例如:127.0.0.1:8000/login, 會被修正為:

127.0.0.1:8000/login/.

所以如果在url中有/的話,則在action中也必須加上/。要麼兩者都不加,否則就會報錯。

url(r'^login/',views.login) 必須與action='/login/'匹配

5. 此時再提交的時候,就不報錯了。

6. 重啟重連,當有請求過來的時候,都是到urls.py裡面去找對應關係。

後台應該根據使用者不同的提交方式(get/post),去獲取不同的方法。

一般而言,都是以get方式獲取表單,以post方式提交使用者名稱和密碼。

request裡面包含了客戶端使用者發過來的所有的資訊。

如果是【post】,那麼表單資料將放在請求體中被傳送出去。

如果是【get】,那麼表單資料將會追加到查詢字串中,以查詢字串的形式提交到服務端。eg: www.baidu.com?nid=1&name=2

建議:表單通常還是以post方式提交比較好,這樣可以不破壞url,況且url還有長度限制。

user=request.post['user']

pwd=request.post['pwd']

print(user,pwd)

測試後台獲取使用者名稱和密碼。request.post()  類似於乙個字典。

為了防止報錯,可以把上面的程式修改為:

dict.get(key, default=none) ,如果有值,則獲取;如果沒有,則使用預設值。這樣有了預設值後,就不會報錯了。

跳**

8. 驗證完以後,如果使用者名稱密碼錯誤的話,返回提示到客戶端。

8.1:在login.html中加1個標籤

8.2 在view.py中給render加第3個引數,

return render(request,'login.html',)

render會先找到login.html目錄,然後開啟login.html檔案放到記憶體,然後找到error_msg這個特殊的字元,然後把error_msg這個字串替換成 』使用者名稱密碼不匹配' 這個字串。

執行結果:至此一切結束。

form表單提交

表單的enctype屬性 enctype 屬性規定在傳送到伺服器之前應該如何對表單資料進行編碼。value 值 描述在傳送前編碼所有字元 預設 multipart form data 不對字元編碼。在使用包含檔案上傳控制項的表單時,必須使用該值。text plain 空格轉換為 加號,但不對特殊字元...

form表單提交

1.當輸入使用者名稱和密碼為空的時候,需要判斷。這時候就用到了校驗使用者名稱和密碼,這個需要在jsp的前端頁面寫 有兩種方法,一種是用submit提交。一種是用button提交。方法一 在jsp的前端頁面的頭部插入乙個js方法 function checkuser if password else ...

Ajax提交form表單

ajax提交form表單 高校平台專案中採用的ui框架為dwz框架,這個框架有乙個很靈活又很讓人頭疼的問題,那就是它的div碎片。所謂的div碎片指的是每乙個jsp頁面不再是乙個單純的jsp了,此時的jsp只不過是乙個div,通過dwz框架本身的ajax技術,可以將任何乙個jsp作為乙個div嵌入到...