最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

HTML的form表單和django的form表單

 更新時間:2019年07月25日 09:23:53   作者:谷子的  
這篇文章主要介紹了HTML的form表單和django的form表單,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下

django的表單系統(tǒng),分2種

  • 基于django.forms.Form的所有表單類的父類
  • 基于django.forms.ModelForm,可以和模型類綁定的Form

直接用原生的form表單,也可以直接用,較麻煩,

django的form表單,也可用可不要,

在views里創(chuàng)建一個類,繼承了forms.Form ,每個字段就是一個輸入框,

#-----
#django 的form表單

from django import forms

class MyForm(forms.Form):
  #forms對應(yīng)的是前端的form表單,form 表單要驗證的字段
  #都與校驗有關(guān)系,與數(shù)據(jù)庫沒有關(guān)系

  #封裝性強,可以 在前端指定顯示那些字段,label 是顯示指定的數(shù)據(jù),
  user = forms.CharField(label="用戶名")#輸入的用戶名,
  age = forms.IntegerField(label="年齡")
  email = forms.EmailField()


#form注冊

def reg2(request):
  # 實列化出一個form對象,傳到前端

  form_obj = MyForm()

  return render(request,"reg2.html",{"form_obj":form_obj})

在前端新建一個注冊頁面,前端渲染表單,是后端表單類實例出來的對象,用對象調(diào)用每個字段,

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Title</title>

</head>
<body>

<h3>form表單使用</h3>
<form action="/reg2/" method="post">
{#  渲染從后端傳來的變量,as_p 是段落#}
  {% csrf_token %}
{#  {{ form_obj.as_p }}#}
  <p>姓名{{ form_obj.user }}</p>
  <p>年齡{{ form_obj.age }}</p>
  <p>郵箱{{ form_obj.email }}</p>

</form>

</body>

</html>

可以從瀏覽器的檢查元素中看到,瀏覽器自動添加了一些東西,

<body>

<h3>form表單使用</h3>
<form action="/reg2/" method="post">

  <input name="csrfmiddlewaretoken" value="GyY3KE5uM7HeErOEZ8OQFwUJYQYaknrOmavdmfufBuVOHdDSWfeHDyt2pjXarGAV" type="hidden">

  <p>姓名<input name="user" required="" id="id_user" type="text"></p>
  <p>年齡<input name="age" required="" id="id_age" type="number"></p>
  <p>郵箱<input name="email" required="" id="id_email" type="email"></p>

</form>
</body>

如果在前端頁面隨便輸入就提交,前端會做校驗,這都是瀏覽器做的校驗,

可以自己定制,字段的錯誤信息提示,和顯示信息,

#django 的form表單
 
from django import forms
 
class MyForm(forms.Form):
  #forms對應(yīng)的是前端的form表單,form 表單要驗證的字段
  #都與校驗有關(guān)系,與數(shù)據(jù)庫沒有關(guān)系
 
  #封裝性強,可以 在前端指定顯示那些字段,label 是顯示指定的數(shù)據(jù),require 是必須填寫的,
  user = forms.CharField(label="用戶名",min_length=5,max_length=8)#輸入的用戶名,
  age = forms.IntegerField(label="年齡",error_messages={"required":"必填",})
  email = forms.EmailField()
 
 
#form注冊
 
def reg2(request):
 
  errors_obj = " "
  if request.method == "POST":
    form_post = MyForm(request.POST)#拿到請求的所有數(shù)據(jù)
    if form_post.is_valid():#判斷數(shù)據(jù)是否合法,返回布爾值,
 
      print("data",form_post.cleaned_data)#獲取數(shù)據(jù),得到一個字典格式,
 
    #添加數(shù)據(jù)庫
    # User.objects.create_user()
  # 實列化出一個form對象,傳到前端
 
    #如果是輸入不合格式的信息,錯誤信息,
    else:
      #獲取錯誤信息
      errors_obj = form_post.errors
 
      # print("error",form_post.errors["user"][0])
      # print("error",form_post.errors["age"])
      # print("error",type(form_post.errors))#字典類型,
 
 
  form_obj = MyForm()
 
  return render(request,"reg2.html",{"form_obj":form_obj,"errors_obj":errors_obj})

在前端頁面

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Title</title>

</head>
<body>

<h3>form表單使用</h3>
<form action="/reg2/" method="post">
{#  渲染從后端傳來的變量,as_p 是段落#}
  {% csrf_token %}
{#  {{ form_obj.as_p }}#}
  <p>姓名{{ form_obj.user }} <span>{{ errors.obj.user.0 }}</span> </p>
  <p>年齡{{ form_obj.age }}<span>{{ errors.obj.age.0 }}</span></p>
  <p>郵箱{{ form_obj.email }}<span>{{ errors.obj.email.0 }}</span></p>
  <input type="submit">

</form>

</body>

</html>

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • pyd文件逆向的方法實現(xiàn)

    pyd文件逆向的方法實現(xiàn)

    pyd文件是由非 Python,其它編程語言編寫編譯生成的 Python 擴展模塊,本文主要介紹了pyd文件逆向的方法實現(xiàn),具有一定的參考價值,感興趣的可以了解一下
    2024-03-03
  • Pyhon Flask框架:第一個Flask程序

    Pyhon Flask框架:第一個Flask程序

    這篇文章主要介紹了Flask搭建虛擬環(huán)境并運行第一個flask程序,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-10-10
  • python批量翻譯excel表格中的英文

    python批量翻譯excel表格中的英文

    本文主要介紹了python批量翻譯excel表格中的英文,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02
  • Python中的布爾類型bool

    Python中的布爾類型bool

    這篇文章主要為大家介紹了Python中的布爾類型bool使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-04-04
  • 使用Python進行用戶畫像構(gòu)建的示例詳解

    使用Python進行用戶畫像構(gòu)建的示例詳解

    用戶畫像,又稱為用戶檔案或客戶畫像,是一種通過收集和分析用戶的行為、偏好、需求等多維度信息,本文主要介紹了如何使用Python進行用戶畫像的構(gòu)建,需要的可以參考下
    2024-10-10
  • 100行python代碼實現(xiàn)跳一跳輔助程序

    100行python代碼實現(xiàn)跳一跳輔助程序

    這篇文章主要介紹了100行代碼實現(xiàn)跳一跳輔助程序,接下來要分享的是用“純軟件”的方法來玩“跳一跳”。本人只做過Android開發(fā),因此下面只給出Android平臺下的實現(xiàn)方法。需要的朋友可以參考下
    2018-01-01
  • Python3自動生成MySQL數(shù)據(jù)字典的markdown文本的實現(xiàn)

    Python3自動生成MySQL數(shù)據(jù)字典的markdown文本的實現(xiàn)

    這篇文章主要介紹了Python3自動生成MySQL數(shù)據(jù)字典的markdown文本的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-05-05
  • 用 Python 元類的特性實現(xiàn) ORM 框架

    用 Python 元類的特性實現(xiàn) ORM 框架

    利用 Python 元類的特性實現(xiàn) ORM 框架的 insert 功能,通過操作類對象,對數(shù)據(jù)表進行數(shù)據(jù)增加操作。由于 ORM 比較復(fù)雜,也不要重復(fù)造輪子,就完成一個 insert 相類似的ORM,理解其中的道理即可。
    2021-05-05
  • python錯誤提示:Errno?2]?No?such?file?or?directory的解決方法

    python錯誤提示:Errno?2]?No?such?file?or?directory的解決方法

    我相信很多人在學(xué)習(xí)Python的時候,特別是在open文件的時候總還碰到,還報錯IOError:[Errno?2]沒有這樣的文件或目錄:'E://aaa.txt',這篇文章主要給大家介紹了關(guān)于python錯誤提示:Errno?2]?No?such?file?or?directory的解決方法,需要的朋友可以參考下
    2022-02-02
  • Python Property屬性的2種用法

    Python Property屬性的2種用法

    這篇文章主要介紹了Python Property屬性的2種用法,本文分別給出了兩種用法的代碼實例,需要的朋友可以參考下
    2015-06-06

最新評論

武安市| 永吉县| 大方县| 黑水县| 南江县| 嵩明县| 内乡县| 云阳县| 天祝| 留坝县| 广汉市| 呼和浩特市| 喀喇| 门源| 博野县| 玛纳斯县| 科技| 建昌县| 大兴区| 仁怀市| 厦门市| 泸水县| 滨州市| 沅陵县| 遂宁市| 尼勒克县| 东光县| 鄂托克旗| 平潭县| 永州市| 诏安县| 通榆县| 云龙县| 河间市| 会宁县| 门头沟区| 武安市| 大厂| 河东区| 增城市| 肥城市|