Django中的表单类
Table of Contents
1 Djang中表单类
Django为我们提供很多有用的模块,其中django.forms.Form类非常不错。 html中一个登录框的格式大致如下:
<form action="" method="post"> <p>username: <input type="text" name="username"></p> <p>password: <input type="password" name="passwd"></p> <input type="submit" value="login"> </form>
Django中,通过视图传输的form变量,在页面格式如下:
<form action="" method="post"> {% csrf_token %} {{ form.as_table }} <input type="submit" value="login"> </form>
视图中的LoginForm实现: 通过继承django.forms.Form,字段类型和DB模型中一样,Django已经为我们定义好了。每个字段默认是必填的,如果选填字段,可以通过 required=False实现
from django import forms class LoginForm(forms.Form): username = forms.CharField(max_length=32) passwd = forms.CharField(label = 'Password:', widget=forms.PasswordInput()) email = forms.EmailField(required=False, label = 'Your e-mail address')
通过视图类,可以更准确地检查输入内容:
form = LoginForm({'username':'user', 'passwd':'pass', 'email':'fakemail'}) form.is_valid() => False for e in form.errors: print(form[e].errors) => <ul class="errorlist"><li>Enter a valid email address.</li></ul>
Date: 2013-08-11 20:06:55 中国标准时间