Django-49-定义一个Form类

在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>

 再次输入点击提交有响应并且有对字段进行简单的校验(默认字段都是必填的,所以会对校验必填)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值