中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Django中如何使用 Form組件

發布時間:2021-07-20 15:29:48 來源:億速云 閱讀:144 作者:Leah 欄目:web開發

Django中如何使用 Form組件,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

為什么需要Form組件

注:Form組件,只適用于,前后端未分離的項目中,主要用于驗證表單數據,所以,關鍵字是表單!!!

比如像嗶哩嗶哩的注冊界面。

Django中如何使用 Form組件

我點擊注冊,它不僅僅可以知道我的注冊昵稱是否存在,密碼是否小于6位,手機號格式錯誤

還會把錯誤信息一直留在上面,給我提示。

我們就以這個為雛形,來簡單的寫一個小小的注冊界面。

普通版注冊

代碼

urls.py

from django.urls import path from web import views  urlpatterns = [     path('reg/', views.reg,), ]

web/views.py

def reg(request):     if request.method == "GET":         return render(request, "reg.html")      nick = request.POST.get("nick")     pwd = request.POST.get("pwd")     phone = request.POST.get("phone")      error = {}     if len(pwd) < 6:         error["pwd"] = "密碼小于6位"     if len(phone) != 11:         error["phone"] = "手機號格式錯誤"      # error為空表示未觸發異常     if not error:         print("寫入數據庫", nick, pwd, phone)         return HttpResponse("注冊成功")     else:         return render(request, "reg.html", {"error": error})

templates/reg.html

<!DOCTYPE html> <html lang="en"> <head>     <meta charset="UTF-8">     <title>登錄</title> </head> <body> <div style="width: 40%;margin: auto">     <form action="" method="post">         <div><input name="nick" type="text" placeholder="昵稱"></div>         <div>             <input name="pwd" type="password" placeholder="密碼">             <span>{{ error.pwd }}</span>         </div>         <div>             <input name="phone" type="text" placeholder="手機號">             <span>{{ error.phone }}</span>         </div>         <div><input type="submit"></div>     </form> </div>  </body> </html>

實現效果

如果填寫的信息正常。

填寫信息

Django中如何使用 Form組件

跳轉之后

Django中如何使用 Form組件

如果填寫的信息錯誤。

填寫信息

Django中如何使用 Form組件

錯誤提示

Django中如何使用 Form組件

小總結

但是你發現雖然能把錯誤信息顯示出來。

但是我原來填寫的東西沒了啊!!!,因為html form表單提交是刷新頁面提交的!

霧草,沒了,這是少的,如果有十幾個???,那不就氣死了

好像我記得我上學時,好多網站都是這。。。好像我也罵了很久,直到前后端分離時,才好一點!

Form組件版注冊

再使用之前,需要將Django項目的settings.py的LANGUAGE_CODE設置為zh-hans

Django中如何使用 Form組件

代碼

以下代碼可能看不懂,大概理解就好!

urls.py

同上

web/views.py

from django.shortcuts import render, HttpResponse from django.forms import Form from django.forms import fields from django.forms import widgets   # Create your views here. class RegForm(Form):     name = fields.CharField(         widget=widgets.TextInput(attrs={"placeholder": "昵稱"})     )     pwd = fields.CharField(         min_length=6,         widget=widgets.TextInput(attrs={"placeholder": "密碼"})     )     phone = fields.CharField(         min_length=11,         max_length=11,         widget=widgets.TextInput(attrs={"placeholder": "手機號"})     )   def reg(request):     if request.method == "GET":         form = RegForm()         return render(request, "reg.html", {"form": form})     form = RegForm(request.POST, request.FILES)     # 驗證表單數據     if form.is_valid():         result = form.clean()         print(result)         return HttpResponse("登錄")     return render(request, "reg.html", {"form": form})

templates/reg.html

<!DOCTYPE html> <html lang="en"> <head>     <meta charset="UTF-8">     <title>登錄</title> </head> <body> <div style="width: 40%;margin: auto">     <form action="" method="post" novalidate>         {% for foo in form %}             <div>                 {{ foo }}                 <span style="color: red">{{ foo.errors.0 }}</span>             </div>         {% endfor %}         <div><input type="submit"></div>     </form> </div>  </body> </html>

實現效果

如果填寫的信息正常。

同上

如果填寫的信息錯誤。


Django中如何使用 Form組件

小總結

這是我點擊提交之后報錯的結果!

可以發現,即使刷新頁面提交,還是會把原來的數據保存下來,并且還有驗證失敗的信息!

Form總結

從上述示例可以發現。

Django Form組件最起碼具有以下功能:

  • 生成HTML標簽。

  • 驗證提交的數據。

  • 保留提交之前的數據。

關于Django中如何使用 Form組件問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

广德县| 满城县| 安丘市| 莱西市| 含山县| 平邑县| 尚义县| 伽师县| 仁寿县| 东光县| 清新县| 循化| 堆龙德庆县| 仲巴县| 新安县| 康乐县| 平远县| 裕民县| 新乐市| 开原市| 余江县| 高密市| 潮安县| 蒲江县| 太康县| 东阿县| 仪征市| 海伦市| 苍南县| 馆陶县| 新营市| 雷山县| 平和县| 静海县| 青神县| 顺昌县| 习水县| 庐江县| 郴州市| 霍城县| 松阳县|