from django.contrib import admin
from django.urls import path
from app01 import views urlpatterns = [
path('admin/', admin.site.urls),
path('test/',views.test) #测试form组件的路由
]

  

from django.shortcuts import render
from django import forms #使用form组件需要先导入forms class UserInfo(forms.Form): #创建一个form类 username = forms.CharField( #定义输入框标签username
label='用户名' #定义label,默认为字段名(username)
) password = forms.CharField(
label='密码',
widget=forms.widgets.PasswordInput(attrs={'class':'c1'}), #widget是forms的一个插件,让密码框密文显示
#attrs={'class': 'c1'} 可以控制标签的属性
) sex = forms.ChoiceField( #定义选择框,默认生成单选下拉框
choices=((1,'男'),(2,'女')),
widget=forms.widgets.RadioSelect, #通过插件设置成radio单选,可以控制标签的属性
#widget=forms.widgets.Select, #和默认相同(下拉选择)
) hobby = forms.MultipleChoiceField( #定义多选框,默认是下拉框多选
choices=((1,'喝酒'),(1,'抽烟'),(3,'烫头')),
widget=forms.CheckboxSelectMultiple #通过插件设置成checkbox多选框
) remember_me = forms.ChoiceField( #定义记住密码选项
label='记住密码',
widget=forms.CheckboxInput #使用插件
) bday = forms.DateField( #定义一个日期框,但是默认为type=text类型
label='出版日期',
widget=forms.DateInput(attrs={'type':'date'}) #设置成日期输入框
) def test(request):
u_obj = UserInfo() #实例化一个form对象
return render(request,'test.html',{'u_obj': u_obj}) #将form对象渲染到前端模板

  

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>test</title>
<style>
.c1{
background-color: red;
}
</style>
</head>
<body>
<form action="" method="post">
{% csrf_token %}
<div>
{{ u_obj.username.label }}:{{ u_obj.username }} {# 通过 “.” 调用,生成标签 #}
</div>
<div>
{{ u_obj.password.label }}:{{ u_obj.password }}
</div> <div>
{{ u_obj.sex }}
</div> <div>
{{ u_obj.hobby }}
</div> <div>
{{ u_obj.remember_me }}{{ u_obj.remember_me.label }}
</div> <div>
{{ u_obj.bday }}{{ u_obj.bday.label }}
</div> <div>
<input type="submit" value="提交">
</div>
</form> </body>
</html>

  

最新文章

  1. android安卓Sqlite数据库实现用户登录注册
  2. CozyRSS开发记录22-界面退化
  3. Lind.DDD.Utils.HttpHelper关于对HttpClient的正确使用
  4. Apache Commons Lang
  5. IO-03. 求整数均值(10)
  6. What is GSLB
  7. POJ2186 Popular Cows(强连通分量)
  8. Hive[2] 基础介绍
  9. Ajax的常用框架有哪些?
  10. UVA 1160 X-Plosives
  11. Android进阶篇-线程分析(一)
  12. Swift の 函数式编程
  13. table固定前两列和最后一列,其他滑动显示
  14. WPF设计の不规则窗体
  15. vue移动端金融UI组件库滴滴MandMobile面向金融场景设计附功能思维导图
  16. BZOJ1926[Sdoi2010]粟粟的书架——二分答案+主席树
  17. 【Scrum】-NO.40.EBook.1.Scrum.1.001-【敏捷软件开发:原则、模式与实践】- Scrum
  18. django之ReverseOneToOneDescriptor
  19. oracle 中decode函数用法
  20. .Net Core WebApi控制器接收原始请求正文内容

热门文章

  1. OpenFaaS实战之五:大话watchdog
  2. Go测试技术分享(一):场景化接口Case编写
  3. linux中的dhcp
  4. ECDSA高性能硬件实现——算法详解与模块划分
  5. maze writeup
  6. AspNetCore添加API限流
  7. git的实用命令(撤回,合并)
  8. git的基本操作命令与基础
  9. idea注释
  10. noip25