Django的form元件基本使用——生成標籤
阿新 • • 發佈:2021-09-08
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>