在django_study.app01目录下新增一个forms.py
django_study.app01.forms.py 定义一个表单类
from django import forms
class RegisterForm(forms.Form):
username = forms.CharField(max_length=32)
password = forms.CharField(max_length=32)
nickname = forms.CharField(max_length=32)
phone = forms.CharField(max_length=11)
email = forms.EmailField()
django_study.django_study.urls.py 配置路由
url(r'^register/$', register, name="reg"),
django_study.app01.views.py 视图函数
from django.shortcuts import render # 导入显示页面的模块
from django.http import HttpResponse # 导入显示字符串的模块
from app01.forms import RegisterForm # 导入注册表单
from .models import * # 导入操作的模型类
import datetime
# Create your views here.
def register(request):
register_form = RegisterForm()
return render(request, "register.html", locals())
django_study.templates.register.html(注册页面,之前存在的页面直接修改)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>注册页面</title>
</head>
<body>
{% csrf_token %}
{{ register_form.as_p }} <!--form表单以段落形式显示(常用)-->
<input type="submit" name="提交"> <!--操作按钮这些一般在html里面写-->
</body>
</html>
启动后访问:127.0.0.1:8000/register
我们在forms里边写的内容就传到了前端页面,不用我们去写前端页面,只需要实例化一个form直接传到前端即可
表单显示的字段为在Form中定义的属性,首字母默认大写
想要显示自定义中文,在form定义属性时加上label参数即可
修改forms.py
from django import forms
class RegisterForm(forms.Form):
username = forms.CharField(max_length=32,label="用户名")
password = forms.CharField(max_length=32,label="密码")
nickname = forms.CharField(max_length=32,label="姓名")
phone = forms.CharField(max_length=11,label="电话")
email = forms.EmailField(label="邮箱")
启动后访问:127.0.0.1:8000/register
此时填写内容点击提交没有任何反应,因为现在这个表单没有任何一个可以提交的地方,所以需在前台增加一个form标签
修改register.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>注册页面</title>
</head>
<body>
<form method="post" action=""> <!--action为空,默认提交当前地址-->
{% csrf_token %}
{{ register_form.as_p }} <!--form表单以段落方式显示-->
<input type="submit" name="提交"> <!--操作按钮这些一般在html里面写-->
</form>
</body>
</html>
再次输入点击提交有响应并且有对字段进行简单的校验(默认字段都是必填的,所以会对校验必填)