django.po,django

  django.po,django

  学习笔记,仅供参考。

  Django目录中的forms模块使用forms模块的步骤来定义form类的语法,并分析例如模板中的form对象内置小部件。

  Django中的表单模块

  Django中提供了表单模块,可以自动生成表单的内部表单控件。同时,可以在服务器端以对象的形式接收和操作客户端表单元素,并在服务器端验证表单的数据。

  窗体模块的功能是通过窗体模块实现的,它允许窗体与类结合,并通过类生成窗体。

  使用表单模块的步骤

  在应用程序中创建forms.py模块

  django提供的进口表格。

  定义表单类(一个类会生成一个表单)类FormName(forms。表单):

  及格

  向form类添加类属性。class属性对应于表单中的控件。

  使用表单自动(或手动)生成表单内容。表单类型对象。

  阅读表单并验证数据

  定义form类的语法。

  属性=表单。字段类型(参数)字段类类名(来自。表单):

  表格。CharField() # textbox输入类型=text

  表格。ChoiceField() #下拉选项框选择

  表格。DateField() #日期框输入类型=日期

  参数标签

  #控件前的文本

  小部件

  #指定小部件

  最初的

  #控件的初始值(主要用于文本框类型)

  需要

  #是必需的,值为(True/False),默认值为True

  解析模板中的表单对象

  解析表单对象在视图中创建表单对象,并将其发送到模板文件进行解析:

  定义视图名称(请求):

  形式=形式。表单名称()

  返回render(request, xx.html ,locals())

  在模板文件中解析:

  !-手动解析-

  表单%}中字段的{%

  {{field.label}}: {{field}}

  !- field.label表示标签参数的值,field表示表单控件-

  {% endfor %}

  !-自动解析-

  {{form.as_p}}

  !-在显示之前,用P标记将表单中的每个属性(控件/文本)包装起来-

  {{form.as_ul}}

  !-在显示之前,用li标记将表单中的每个属性(控件/文本)括起来-

  !-ol或ul标志必须手动提供-

  {{form.as_table}}

  !-在显示之前,用tr标记将表单中的每个属性(控件/文本)包装起来-

  !-必须手动提供表格标签-

  内置部件

  什么是widget?Widget是指在网页上生成的控件和一些html属性。

  常用小部件类型的小部件名称。

  和相应类型类值。

  文本输入

  type=text

  密码输入框

  type=password

  数字输入

  type="number "

  电子邮件输入

  type="电子邮件"

  URLInput

  type="url "

  隐藏输入

  type="hidden "

  复选框输入

  type="checkbox "

  复选框选择多个

  type="checkbox "

  无线电选择

  type="收音机"

  文本区域

  文本区域标记(大文本框)

  挑选

  选择标签

  选择多个

  选择多个标签

  小部件1的使用语法:

  Class=forms。夏菲尔德(

  label=xxx ,

  Widget=forms.widget类型

  )语法2(在指定控件类型的基础上,还可以指定控件的一些html属性值):

  Class=forms。夏菲尔德(

  label=xxx ,

  Widget=forms.widget类型(

  属性={

  Html属性名:值,

  Html属性名:值,

  }

  )

  )

  例如

  首先,我们在userinfo应用程序下创建一个表单模块forms.py:

  在forms.py模块中,我们键入以下代码:

  # -*-编码:utf-8 -*-

  从django进口表格

  类RegForm(forms。表单):

  username=forms . charfield(label=输入昵称)

  password=forms . charfield(label=输入密码)

  password repeat=forms . charfield(label=再次输入密码)

  # input type=text 在userinfo应用程序的templates文件夹下创建一个新模板test_form.html:

  在userinfo应用程序的urls.py文件中,我们添加了一个路由:

  从django.urls导入re_path

  从。导入视图

  urlpatterns=[

  re_path(r^test_form/,views.test_form),

  ]在userinfo应用程序的views.py模块中,我们添加了一个视图函数:

  定义测试表单(请求):

  if request.method==GET :

  myform=forms。RegForm()

  #创建一个对象

  return render(request, userinfo/test_form.html ,

  locals())

  否则:

  打印(其他请求)在测试_表单。超文本标记语言模板中,我们敲入如下代码:

  !声明文档类型

  html lang=en

  头

  meta charset=UTF-8

  标题形式表单/标题

  /头

  身体

  表单操作=/userinfo/test_form/方法=POST

  {% csrf_token %}

  {{myform.as_p}}

  {# 自动生成形式表单的内部的表单控件#}

  /表单

  /body

  /html

  我们向http://127 .0 .0 .1:8000/userinfo/test _ form/发起请求:

  由于提交表单数据的按钮不能用形式类自动生成,所以我们在测试_表单。超文本标记语言模块中自己加一个提交按钮:

  !声明文档类型

  html lang=en

  头

  meta charset=UTF-8

  标题形式表单/标题

  /头

  身体

  表单操作=/userinfo/test_form/方法=POST

  {% csrf_token %}

  {{myform.as_p}}

  {# 自动生成形式表单的内部的表单控件#}

  输入类型=提交值=注册

  /表单

  /body

  /html在forms.py模块中,我又添加了一个手机号输入框,并设置此框内容可为空:

  从框架进口表格

  类RegForm(表单.表单):

  用户名=表单CharField(label=输入昵称)

  密码=表单CharField(label=输入密码)

  passwordRepeat=forms .CharField(label=再次输入密码)

  电话=表单CharField(label=手机号,必需=假)

  #输入类型=文本

  我们再次向http://127 .0 .0 .1:8000/userinfo/test _ form/发起请求:

  我们看一下该页面的源代码:

  !声明文档类型

  html lang=en

  头

  meta charset=UTF-8

  标题形式表单/标题

  /头

  身体

  表单操作=/userinfo/test_form/方法= POST /表单

  输入类型= hidden name= csrfmiddlewaretoken value= bgx M5 hvnfrddqh 30 zlc 1 slbqkrmlstuhljz 7 ehabbbbgzydsv 9 kvhejqaim 4 qeaneg

  = id _用户名的p标签输入昵称:/label input type= text name= username required id= id _ username /p

  =id_password 的p标签输入密码:/label input type= text name= password required id= id _ password /p

  =id_passwordRepeat 的p标签再次输入密码:/label input type= text name= password repeat required id= id _ password repeat /p

  =id_tele 的p标签手机号:/label input type= text name= tele id= id _ tele /p

  输入类型=提交值=注册

  /body

  /html

  现在,我们给我们的表单加一些小部件,比如将文本框改为密码输入框:

  从框架进口表格

  类RegForm(表单.表单):

  用户名=表单CharField(label=输入昵称)

  密码=表单CharField(label=输入密码,

  小部件=表单。密码输入)

  passwordRepeat=forms .CharField(label=再次输入密码,

  小部件=表单。密码输入)

  电话=表单CharField(label=手机号,必需=假)

  电子邮件=表单CharField(label=邮箱,必需=假,

  小部件=表单。电子邮件输入)我们再次向http://127 .0 .0 .1:8000/userinfo/test _ form/发起请求:

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码:
匿名 2022-09-27 19:10:57
http://www.lfxcw.gov.cn/?s=%E7%8E%AF%E7%90%83%E5%9B%BD%E9%99%85%E5%AE%A2%E6%9C%8D%E5%9C%A8%E7%BA%BF%E5%BC%80%E6%88%B7%E3%80%90%E7%BD%94%E5%9D%80hN3551%C2%B7CoM%E3%80%91R10
回复  支持[3反对[1]
匿名 2022-09-27 19:10:36
http://www.lfxcw.gov.cn/?s=%E5%B0%8F%E5%8B%90%E6%8B%8999%E5%8E%85%E5%AE%98%E6%96%B9%E7%BD%91%E7%AB%99%E5%BC%80%E6%88%B7%E3%80%90%E7%BD%94%E5%9D%80hN3551%C2%B7CoM%E3%80%91LWU
回复  支持[4反对[4]
匿名 2022-09-27 19:10:25
http://www.lfxcw.gov.cn/?s=%E7%8E%AF%E7%90%83%E5%9B%BD%E9%99%85%E7%82%B9%E5%87%BB%E9%83%A8%E5%BC%80%E6%88%B7%E3%80%90%E7%BD%94%E5%9D%80hN3551%C2%B7CoM%E3%80%91nJ0
回复  支持[2反对[5]
匿名 2022-09-27 19:10:11
http://www.lfxcw.gov.cn/?s=%E8%B4%A2%E7%A5%9E%E5%9B%BD%E9%99%85%E4%B8%8B%E8%BD%BD%E5%BC%80%E6%88%B7%E3%80%90%E7%BD%94%E5%9D%80hN3551%C2%B7CoM%E3%80%91b3Z
回复  支持[2反对[2]
匿名 2022-09-27 19:10:11
http://www.lfxcw.gov.cn/?s=%E7%9B%9B%E4%B8%96%E5%9B%BD%E9%99%85%E5%AE%A2%E6%9C%8D%E5%A8%B1%E4%B9%90%E5%BC%80%E6%88%B7%E3%80%90%E7%BD%94%E5%9D%80hN3551%C2%B7CoM%E3%80%91kcO
回复  支持[4反对[4]
匿名 2022-09-27 19:09:58
http://www.lfxcw.gov.cn/?s=%E5%92%8C%E7%9B%9B%E5%AE%98%E7%BD%91%E5%BC%80%E6%88%B7%E3%80%90%E7%BD%94%E5%9D%80hN3551%C2%B7CoM%E3%80%91ZcX
回复  支持[4反对[3]
匿名 2022-09-27 19:09:52
http://www.lfxcw.gov.cn/?s=%E7%8E%AF%E7%90%83%E5%9B%BD%E9%99%85%E5%8E%85%E7%8E%B0%E5%9C%BA%E7%83%AD%E7%BA%BF%E5%BC%80%E6%88%B7%E3%80%90%E7%BD%94%E5%9D%80hN3551%C2%B7CoM%E3%80%91Wen
回复  支持[4反对[4]
匿名 2022-09-27 19:09:52
http://www.lfxcw.gov.cn/?s=%E8%BF%AA%E5%A8%81%E5%9B%BD%E9%99%85%E5%AE%A2%E6%9C%8D%E4%B8%8A%E5%88%86%E5%BC%80%E6%88%B7%E3%80%90%E7%BD%94%E5%9D%80hN3551%C2%B7CoM%E3%80%91gQu
回复  支持[3反对[3]
匿名 2022-09-27 19:09:50
http://www.lfxcw.gov.cn/?s=%E7%9B%9B%E4%B8%96%E5%9B%BD%E9%99%85%E5%AE%98%E6%96%B9APP%E4%B8%8B%E8%BD%BD%E5%BC%80%E6%88%B7%E3%80%90%E7%BD%94%E5%9D%80hN3551%C2%B7CoM%E3%80%91nSh
回复  支持[4反对[3]
匿名 2022-09-27 19:09:49
http://www.lfxcw.gov.cn/?s=%E8%BF%AA%E5%A8%81%E5%9B%BD%E9%99%85%E8%BF%94%E7%82%B9%E5%BC%80%E6%88%B7%E3%80%90%E7%BD%94%E5%9D%80hN3551%C2%B7CoM%E3%80%91g1L
回复  支持[1反对[1]