django-表单
2016-04-09 10:29
471 查看
表单
表单可以验证输入,也可以生成html
<form action="/user_list/" method="post">
<p>用户类型:` obj`.`user_type `
<span>{% error_message errors.user_type %}</span>
</p>
<p>主机:` obj`.`host `
<span>{% error_message errors.host %}</span>
</p>
<p>端口:` obj`.`port ` <span>` errors`.`port `</span></p>
<p>邮箱:` obj`.`email ` <span>` errors`.`email `</span></p>
<p>手机:` obj`.`mobile ` <span>` errors`.`mobile `</span></p>
<p>备注:` obj`.`memo ` <span>` errors`.`memo `</span></p>
<input type="submit" value="submit" />
</form>
#z自定义匹配类型
def mobile_validate(value):
mobile_re = re.compile(r'^(13[0-9]|15[012356789]|17[678]|18[0-9]|14[57])[0-9]{8}$')
if not mobile_re.match(value):
raise ValidationError('手机号码格式错误')
#创建一个继承Form的类
class UserInfo(forms.Form):
user_type_choice = (
(0, u'普通用户'),
(1, u'高级用户'),
)
user_type = forms.IntegerField(widget=forms.widgets.Select(choices=user_type_choice,
attrs={'class': "form-control"}))
email = forms.EmailField(error_messages={'required': u'邮箱不能为空'}) #自定义表单错误提示
host = forms.CharField(error_messages={'required': u'主机不能为空'})
port = forms.CharField(error_messages={'required': u'端口不能为空'})
mobile = forms.CharField(validators=[mobile_validate, ], #调用自己定义的匹配函数
error_messages={'required': u'手机不能为空'},
widget=forms.TextInput(attrs={'class': "form-control", #添加标签属性
'placeholder': u'手机号码'}))
memo = forms.CharField(required=False,
widget=forms.Textarea(attrs={'class': "form-control",
'placeholder': u'备注'})
)
#前端提交数据处理函数
def user_list(request):
obj = UserInfo()
if request.method == "POST":
user_input_obj = UserInfo(request.POST)
if user_input_obj.is_valid():
data = user_input_obj.clean()
print data
else:
error_msg = user_input_obj.errors.as_data()
return render(request, 'user_list.html', {'obj': user_input_obj, 'errors': error_msg})
return render(request, 'user_list.html', {'obj': obj})
表单可以验证输入,也可以生成html
<form action="/user_list/" method="post">
<p>用户类型:` obj`.`user_type `
<span>{% error_message errors.user_type %}</span>
</p>
<p>主机:` obj`.`host `
<span>{% error_message errors.host %}</span>
</p>
<p>端口:` obj`.`port ` <span>` errors`.`port `</span></p>
<p>邮箱:` obj`.`email ` <span>` errors`.`email `</span></p>
<p>手机:` obj`.`mobile ` <span>` errors`.`mobile `</span></p>
<p>备注:` obj`.`memo ` <span>` errors`.`memo `</span></p>
<input type="submit" value="submit" />
</form>
#z自定义匹配类型
def mobile_validate(value):
mobile_re = re.compile(r'^(13[0-9]|15[012356789]|17[678]|18[0-9]|14[57])[0-9]{8}$')
if not mobile_re.match(value):
raise ValidationError('手机号码格式错误')
#创建一个继承Form的类
class UserInfo(forms.Form):
user_type_choice = (
(0, u'普通用户'),
(1, u'高级用户'),
)
user_type = forms.IntegerField(widget=forms.widgets.Select(choices=user_type_choice,
attrs={'class': "form-control"}))
email = forms.EmailField(error_messages={'required': u'邮箱不能为空'}) #自定义表单错误提示
host = forms.CharField(error_messages={'required': u'主机不能为空'})
port = forms.CharField(error_messages={'required': u'端口不能为空'})
mobile = forms.CharField(validators=[mobile_validate, ], #调用自己定义的匹配函数
error_messages={'required': u'手机不能为空'},
widget=forms.TextInput(attrs={'class': "form-control", #添加标签属性
'placeholder': u'手机号码'}))
memo = forms.CharField(required=False,
widget=forms.Textarea(attrs={'class': "form-control",
'placeholder': u'备注'})
)
#前端提交数据处理函数
def user_list(request):
obj = UserInfo()
if request.method == "POST":
user_input_obj = UserInfo(request.POST)
if user_input_obj.is_valid():
data = user_input_obj.clean()
print data
else:
error_msg = user_input_obj.errors.as_data()
return render(request, 'user_list.html', {'obj': user_input_obj, 'errors': error_msg})
return render(request, 'user_list.html', {'obj': obj})
相关文章推荐
- Android之获取手机上的图片和视频缩略图thumbnails
- android wifi 无线调试
- 网易云音乐8亿用户背后的伤疤
- 谷歌正式开始补偿Nexus 6P重启门和电池门用户:最高赔400美元
- 每日安全资讯:哪些属于App违法违规收集使用个人信息?
- windows server域用户提升到本地更高权限组中的方法
- 管理 Linux 系统中的用户
- 手机4大隐藏功能及使用必知常识第1/2页
- 个人用户防黑指南
- 使用Ajax实时检测"用户名、邮箱等"是否已经存在
- 邮箱网站不能用mail.xxx.com:8888的方式访问原因
- SQL Server提示"选定的用户拥有对象,所以无法除去该用户”
- PowerShell查看进程的所属用户
- C#创建windows系统用户的方法
- Android改变手机屏幕朝向的方法
- MongoDB系列教程(四):设置用户访问权限
- hotmail,MSN 邮箱无法登陆的解决方法 秘密通道
- php实现用手机关闭计算机(电脑)的方法