1. 程式人生 > >form組件

form組件

驗證 false fields ffi 基本使用 color 表達式 ios inpu

一、form組件
1.- Form組件
- 創建類,繼承Form
- 創建字段,字段=正則表達式; PS: 字段名稱,required, error_messages = {required,invalid}
- form = MyForm(data=request.POST)
- form.is_valid()
- form.cleaned_data
- form.errors
2.Form組件
1. 用戶請求數據驗證
2. 自動生成錯誤信息


3. 打包用戶提交正確信息
4. 錯誤:保留上次輸入內容
5. 定制頁面上顯示的HTML標簽
Django Form組件
1. 創建規則(類,字段)
class Foo:
username = xxx
password = xxx
email = xxx
2. 數據和規則進行匹配
form = Foo(data=xxx,initial=初始化)

form.is_valid()
form.cleaned_data
form.errors
3.內置字段
Field
required=True, 是否允許為空
widget=None, HTML插件
label=None, 用於生成Label標簽或顯示內容
initial=None, 初始值

help_text=‘‘, 幫助信息(在標簽旁邊顯示)
error_messages=None, 錯誤信息 {‘required‘: ‘不能為空‘, ‘invalid‘: ‘格式錯誤‘}
show_hidden_initial=False, 是否在當前插件後面再加一個隱藏的且具有默認值的插件(可用於檢驗兩次輸入是否一直)
validators=[], 自定義驗證規則
localize=False, 是否支持本地化
disabled=False, 是否可以編輯
label_suffix=None Label內容後綴
CharField(Field)
max_length=None, 最大長度
min_length=None, 最小長度
strip=True 是否移除用戶輸入空白
IntegerField(Field)
max_value=None, 最大值
min_value=None, 最小值
FloatField(IntegerField)
DecimalField(IntegerField)
max_value=None, 最大值
min_value=None, 最小值
max_digits=None, 總長度
decimal_places=None, 小數位長度
BaseTemporalField(Field)
input_formats=None 時間格式化
DateField(BaseTemporalField) 格式:2015-09-01
TimeField(BaseTemporalField) 格式:11:12
DateTimeField(BaseTemporalField)格式:2015-09-01 11:12
DurationField(Field) 時間間隔:%d %H:%M:%S.%f
4.內置插件
TextInput(Input)
NumberInput(TextInput)
EmailInput(TextInput)
URLInput(TextInput)
PasswordInput(TextInput)
HiddenInput(TextInput)
Textarea(Widget)
DateInput(DateTimeBaseInput)
DateTimeInput(DateTimeBaseInput)
TimeInput(DateTimeBaseInput)
CheckboxInput
Select
NullBooleanSelect
SelectMultiple
RadioSelect
CheckboxSelectMultiple
FileInput
ClearableFileInput
MultipleHiddenInput
SplitDateTimeWidget
SplitHiddenDateTimeWidget
SelectDateWidget
5.常用選擇插件
單radio,值為字符串
user = fields.CharField(
initial=2,
widget=widgets.RadioSelect(choices=((1,‘上海‘),(2,‘北京‘),))
)
單radio,值為字符串
user = fields.ChoiceField(
choices=((1, ‘上海‘), (2, ‘北京‘),),
initial=2,
widget=widgets.RadioSelect
)
單select,值為字符串
user = fields.CharField(
initial=2,
widget=widgets.Select(choices=((1,‘上海‘),(2,‘北京‘),))
)
單select,值為字符串
user = fields.ChoiceField(
choices=((1, ‘上海‘), (2, ‘北京‘),),
initial=2,
widget=widgets.Select
)
多選select,值為列表
user = fields.MultipleChoiceField(
choices=((1,‘上海‘),(2,‘北京‘),),
initial=[1,],
widget=widgets.SelectMultiple
)
單checkbox
user = fields.CharField(
widget=widgets.CheckboxInput()
)
多選checkbox,值為列表
user = fields.MultipleChoiceField(
initial=[2, ],
choices=((1, ‘上海‘), (2, ‘北京‘),),
widget=widgets.CheckboxSelectMultiple

三、

1. Form基本使用
- 類
- 字段
- is_valid
- cleaned_data
- errors
2. 字段參數:
- max_length
- min_length
- validators = [RegexValidator(‘xxx‘)]
3. 鉤子函數
- clean_字段名
註意:
必須有返回值
只能拿自己當前字段值
raise ValidationError(‘xxx‘)
4. 下拉框數據源實時更新
- 重寫構造方法
__init__
- 先執行父類構造方法
- self.fields[‘xx‘].choices = xxxxx
- ModelChoiceField

四、

form組件
1.- Form組件
- 創建類,繼承Form
- 創建字段,字段=正則表達式; PS: 字段名稱,required, error_messages = {required,invalid}
- form = MyForm(data=request.POST)
- form.is_valid()
- form.cleaned_data
- form.errors
2.Form組件
1. 用戶請求數據驗證
2. 自動生成錯誤信息
3. 打包用戶提交正確信息
4. 錯誤:保留上次輸入內容
5. 定制頁面上顯示的HTML標簽
Django Form組件
1. 創建規則(類,字段)
class Foo:
username = xxx
password = xxx
email = xxx
2. 數據和規則進行匹配
form = Foo(data=xxx,initial=初始化)
form.is_valid()
form.cleaned_data
form.errors

form組件