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