Django可以相对容易的构建相应model的表单
方法有:ModelForm和Form
这是模板的代码
<fieldset style="width: 50%;align-items: center">
<legend align="center">注册框</legend>
<form action="" method="post" id="form_register">
{%csrf_token%}
<p>
<label for="{{form.username.id_for_label}}">{{form.username.label}}</label>
{{ form.username }}
</p>
<p>
<label for="{{form.password.id_for_label}}">{{form.password.label}}</label>
{{ form.password }}
</p>
<p>
<label for="{{form.shenfenzheng.id_for_label}}">{{form.shenfenzheng.label}}</label>
{{ form.shenfenzheng }}
</p>
<p>
<label for="{{form.user_phone.id_for_label}}">{{form.user_phone.label}}</label>
{{ form.user_phone }}
</p>
</form>
<input type="button" name="register" id="btn_reg" value="提交" onclick="register()" />
</fieldset>
这是view代码
def register(request):
"""返回注册界面"""
form = register_form()
if request.method == "POST":
form_submit = register_form(request.POST)
if form_submit.is_valid():
return HttpResponse('注册成功')
return render(request, 'supermarket/sup_register.html', {"form": form})
这是form代码
class register_form(forms.Form):
"""注册表单,用于渲染模板"""
username = forms.CharField(
max_length=20,
label='用户名',
strip=True,
required=True,
error_messages={
'required': '必填信息',
'max_length': '长度不能超过20个字符',
'invalid': '格式错误'
}
)
password = forms.CharField(
min_length=7,
label='密码',
required=True,
widget=forms.widgets.PasswordInput(render_value=True),
strip=True,
error_messages={
'min_length': '最小长度不能小于7',
'required': '必填信息',
}
)
shenfenzheng = forms.CharField(
label='身份证号',
required=True,
validators=[RegexValidator(r'(\d+){18}|(\d+){17}X', '请输入正确的身份证号')],
error_messages={
'required': '必填信息'
}
)
user_phone = forms.CharField(
label='手机号',
max_length=11,
required=True,
error_messages={
'required': '必填信息',
'max_length': '长度不符合要求',
'invalid': '格式错误'
},
validators=[RegexValidator(r'1[35789]\d+{9}', '请输入正确的手机号')]
)
这是form.py需要import的模块
from .models import *
from django.forms import Form
from django.forms import widgets
from django.forms import Field
from django.core.validators import ValidationError
from django.core.validators import RegexValidator