欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

forms組件如何在Django中使用-創(chuàng)新互聯(lián)

這篇文章將為大家詳細講解有關(guān)forms組件如何在Django中使用,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關(guān)知識有一定的了解。

成都創(chuàng)新互聯(lián)公司主營惠山網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,app開發(fā)定制,惠山h5微信小程序搭建,惠山網(wǎng)站營銷推廣歡迎惠山等地區(qū)企業(yè)咨詢

一,forms組件:

校驗字段功能

針對一個實例:注冊用戶講解。

模型:models.py

class UserInfo(models.Model):
  name=models.CharField(max_length=32)
  pwd=models.CharField(max_length=32)
  email=models.EmailField()
  tel=models.CharField(max_length=32)

模板: register.html:

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

</head>
<body>

<form action="" method="post">
  {% csrf_token %} 
  <div>
    <label for="user">用戶名</label>
    <p><input type="text" name="name" id="name"></p>
  </div>
  <div>
    <label for="pwd">密碼</label>
    <p><input type="password" name="pwd" id="pwd"></p>
  </div>
  <div>
    <label for="r_pwd">確認密碼</label>
    <p><input type="password" name="r_pwd" id="r_pwd"></p>
  </div>
   <div>
    <label for="email">郵箱</label>
    <p><input type="text" name="email" id="email"></p>
  </div>
  <input type="submit">
</form>

</body>
</html>

視圖函數(shù):register

# forms組件
from django.forms import widgets

wid_01=widgets.TextInput(attrs={"class":"form-control"})
wid_02=widgets.PasswordInput(attrs={"class":"form-control"})

class UserForm(forms.Form):
  name=forms.CharField(max_length=32,
             widget=wid_01
             )
  pwd=forms.CharField(max_length=32,widget=wid_02)
  r_pwd=forms.CharField(max_length=32,widget=wid_02)
  email=forms.EmailField(widget=wid_01)
  tel=forms.CharField(max_length=32,widget=wid_01)

def register(request):

  if request.method=="POST":
    form=UserForm(request.POST)
    if form.is_valid():
      print(form.cleaned_data)    # 所有干凈的字段以及對應(yīng)的值
    else:
      print(form.cleaned_data)    #
      print(form.errors)       # ErrorDict : {"校驗錯誤的字段":["錯誤信息",]}
      print(form.errors.get("name")) # ErrorList ["錯誤信息",]
    return HttpResponse("OK")
  form=UserForm()
  return render(request,"register.html",locals())

1,渲染標簽功能

渲染方式1

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
  <!-- 最新版本的 Bootstrap 核心 CSS 文件 -->
  <link rel="stylesheet" href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="external nofollow" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh5u" crossorigin="anonymous">
</head>
<body>
<h4>注冊頁面</h4>
<div class="container">
  <div class="row">
    <div class="col-md-6 col-lg-offset-3">

        <form action="" method="post">
          {% csrf_token %}
          <div>
            <label for="">用戶名</label>
            {{ form.name }}
          </div>
          <div>
            <label for="">密碼</label>
            {{ form.pwd }}
          </div>
          <div>
            <label for="">確認密碼</label>
            {{ form.r_pwd }}
          </div>
          <div>
            <label for=""> 郵箱</label>
            {{ form.email }}
          </div>

          <input type="submit" class="btn btn-default pull-right">
        </form>
    </div>
  </div>
</div>
</body>
</html>

渲染方式2

<form action="" method="post">
          {% csrf_token %}

          {% for field in form %}
            <div>
              <label for="">{{ field.label }}</label>
              {{ field }}
            </div>
          {% endfor %}
          <input type="submit" class="btn btn-default pull-right">

</form>

渲染方式3

<form action="" method="post">
  {% csrf_token %}

  {{ form.as_p }}
  <input type="submit" class="btn btn-default pull-right">

</form>

2,顯示錯誤與重置輸入信息功能

視圖

def register(request):

  if request.method=="POST":
    form=UserForm(request.POST)
    if form.is_valid():
      print(form.cleaned_data)    # 所有干凈的字段以及對應(yīng)的值
    else:
      print(form.cleaned_data)    #
      print(form.errors)       # ErrorDict : {"校驗錯誤的字段":["錯誤信息",]}
      print(form.errors.get("name")) # ErrorList ["錯誤信息",]
    return render(request,"register.html",locals())
  form=UserForm()
  return render(request,"register.html",locals())

模板

<form action="" method="post" novalidate>
  {% csrf_token %}

  {% for field in form %}
    <div>
      <label for="">{{ field.label }}</label>
      {{ field }} <span class="pull-right" >{{ field.errors.0 }}</span>
    </div>
  {% endfor %}
  <input type="submit" class="btn btn-default">

</form>

3,局部鉤子與全局鉤子

模板

# forms組件
from django.forms import widgets

wid_01=widgets.TextInput(attrs={"class":"form-control"})
wid_02=widgets.PasswordInput(attrs={"class":"form-control"})

from django.core.exceptions import ValidationError
class UserForm(forms.Form):
  name=forms.CharField(max_length=32,
             widget=wid_01
             )
  pwd=forms.CharField(max_length=32,widget=wid_02)
  r_pwd=forms.CharField(max_length=32,widget=wid_02)
  email=forms.EmailField(widget=wid_01)
  tel=forms.CharField(max_length=32,widget=wid_01)

  # 局部鉤子
  def clean_name(self):
    val=self.cleaned_data.get("name")
    if not val.isdigit():
      return val
    else:
      raise ValidationError("用戶名不能是純數(shù)字!")

  # 全局鉤子

  def clean(self):
    pwd=self.cleaned_data.get("pwd")
    r_pwd=self.cleaned_data.get("r_pwd")

    if pwd==r_pwd:
      return self.cleaned_data
    else:
      raise ValidationError('兩次密碼不一致!')

def register(request):

  if request.method=="POST":
    form=UserForm(request.POST)
    if form.is_valid():
      print(form.cleaned_data)    # 所有干凈的字段以及對應(yīng)的值
    else:
      clean_error=form.errors.get("__all__")

    return render(request,"register.html",locals())
  form=UserForm()
  return render(request,"register.html",locals())

視圖

<form action="" method="post" novalidate>
      {% csrf_token %}

      {% for field in form %}
        <div>
          <label for="">{{ field.label }}</label>
          {{ field }}
          <span class="pull-right" >
             {% if field.label == 'R pwd' %}
             <span>{{ clean_error.0 }}</span>
             {% endif %}
             {{ field.errors.0 }}
          </span>
        </div>
      {% endfor %}
      <input type="submit" class="btn btn-default">

</form>

關(guān)于forms組件如何在Django中使用就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

當前標題:forms組件如何在Django中使用-創(chuàng)新互聯(lián)
標題來源:http://aaarwkj.com/article10/hoedo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站制作、品牌網(wǎng)站制作、網(wǎng)站策劃、Google網(wǎng)頁設(shè)計公司、動態(tài)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)
日本av电影一区二区三区四区| 黄色片一区二区三区四区| 91嫩草中文字幕在线| 中文日韩av在线免费播放| 国产综合亚洲欧美日韩在线| 九九久久精品久久久精品| 麻豆精品国产粉嫩av| 中文字幕乱码日韩一二三区| 能在线播放的国产三级| 日本一区二区三区在线观看视频| 中文字幕在线日韩av| 亚洲精品另类中文字幕| 国产自偷一区二区三区| 在线观看亚洲毛片网站| 亚洲av午夜福利麻豆av| 日韩欧美黄色三级视频| 97人妻人人揉人人澡人人学生| 成人一区二区三区播放| 欧美激情三级一区二区| 日韩高清有码一区二区| 亚洲精品视频在线观看视频| 亚洲一区有码在线观看| 日韩成人午夜视频在线| 美女床上激情啪啪网页| 国产在线观看91精品一区| 中文乱码字幕亚洲精品| 熟妇高潮一区二区在线观看| 成人午夜欧美熟妇小视频| 亚洲欧美日韩乱码综合久久| 国产亚洲一区激情小说| 国产日韩欧美在线精品| 国产v精品欧美精品v日韩| 欧美夫妻香蕉视频网站| 免费观看久久久激情片| 亚洲二区中文字幕在线观看| 国产精品综合日韩精| 亚洲精品国产熟女久久| 亚洲熟女精品不卡一区二区| av剧情在线观看免费| 在线观看国产一区二区不卡| 亚洲熟妇av乱码在线|