django表单处理(二)--数据验证

上一篇讲到最简单的表单处理,就将输入的字符串输出了。

这么简单的表单处理可不行,接下来我们以一个用户注册的例子说明怎么验证数据。

验证数据要用到django.forms模块。

首先我们在templates目录下新建一个forms.py文件,添加代码:

#-*- coding: utf-8 -*-
from django import forms

class AccountForm(forms.Form):
	Email = forms.EmailField() #规定文本为email格式
	Name = forms.CharField() #无限制条件
	Password = forms.CharField(min_length=8) #密码最短8位

#这就是指定的数据格式

然后我们新建另一个html文件register.html,添加代码:

<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<title>表单数据验证</title>
	<style type="text/css">
		body, div {
			padding: 0;
			margin: 0;
		}
		#container {
			width: 1070px;
			margin: 0 auto;
		}
		.wrap {
			width: 360px;
			height: 48px;
			margin: 0 auto;
		}
		.wrap form input {
			width: 240px;
			height: 24px;
			margin-top: 12px;
		}
	</style>
</head>
<body>
	<div id="container">
		<div class="wrap">
			<form action="." class="crawl" method="POST">
			<h3>用户注册</h3>
			{% csrf_token %}
				<table>
				{{ form.as_table }}{#as_table 是form 的一个方法,它把 form 渲染成一系列的表格行#}
				</table>
				<button type="submit">
					提交
				</button>
			</form>
			{% if results %}
				<h2>{{ results }}</h2>
			{% endif %}
		</div>
	</div>
</body>
</html>

这一次我们把表单的提交方式改为POST,所以要注意下面三点:

1.       views里面,强制使用RequestContext代替Context,看到函数中的RequestContext(request)了吗?

2.       在模板的form体里面,加入{% csrf_token %}

3.       确认settings.py文件里面MIDDLEWARE_CLASSES = ( 'django.middleware.csrf.CsrfViewMiddleware',)没有被注释。

如果没有解决这三个问题,在提交表单的时候会遇到CSRF verification failed. Request aborted.

最后在urls.py中添加:(r'^reg/', 'register'),

在浏览器中打开127.0.0.1:8000/reg/

运行结果无法上图了,废话一下吧。假如你在email框输入的字符串不是email格式,系统会弹出消息提醒你。不过它只做一般的检查,至于该邮箱存不存在还得另想办法。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值