摘要
本文部分内容来源于网络,个人收集整理,请勿传播
Django框架Form知识点
Django的Form主要具有一下几大功能:
- 生成HTML标签
- 验证用户数据(显示错误信息)
- HTML Form提交保留上次提交数据
- 初始化页面显示内容
创建Form类时,主要涉及到字段和插件,字段用于对用户请求数据的验证,插件用于自动生成HTML;
基本使用
1 | obj.is_valid |
创建Form类
1 | from django.forms import Form |
View函数处理
1 | from django.shortcuts import render, redirect |
生成HTML
1 | <form action="/" method="POST" enctype="multipart/form-data"> |
其他标签有
1 | <form method="POST" enctype="multipart/form-data"> |
内置字段
1 | Field |
注:UUID是根据MAC以及当前时间等创建的不重复的随机字符串
1 | import uuid |
内置插件
- 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*
常用选择插件
1 | # 单radio,值为字符串 |
在使用选择标签时,需要注意choices的选项可以从数据库中获取,但是由于是静态字段 获取的值无法实时更新,那么需要自定义构造方法从而达到此目的。
方法一
1 | from django.forms import Form |
方法二
使用django提供的ModelChoiceField和ModelMultipleChoiceField字段来实现
1 | from django import forms |
自定义验证规则
方法一
1 | from django.forms import Form |
方法二
1 | import re |
自定义方法
1 | from django import forms |
同时生成多个标签进行验证
1 | from django.forms import Form |
初始化数据
在Web应用程序中开发编写功能时,时常用到获取数据库中的数据并将值初始化在HTML中的标签上。
Form
1 | from django.forms import Form |
Views
1 | from django.shortcuts import render, redirect |
Html
1 | <form method="POST" enctype="multipart/form-data"> |
用户验证Form
Form
1 | #!/usr/bin/env python |
View
1 | def publish(request): |
ModelForm组件
在使用Model和Form时,都需要对字段进行定义并指定类型,通过ModelForm则可以省去From中字段的定义
1 | class AdminModelForm(forms.ModelForm): |
详细参数
1 | a. class Meta: |