27.form组件----(1)初识form组件

1.form表单的作用?

首先我们知道form表单的功能:

  1. 获取用户提交的数据
  2. 对用户提交的数据进行校验
  3. 提示错误信息

但是form表单也有缺点:

  1. 无法保留上次提交的数据
  2. 只有特定的验证规则

那有没有一个东西,既能保留form的功能又可以弥补form表单的缺点呢,当然是有的,就是django为我们提供的form组件。
所以form表单的作用不言而喻:

  1. 获取用户输入数据并校验
  2. 保存上一次输入的数据
  3. 可以自定义校验规则

2.form组件的简单使用

在视图函数中:

from django.forms import Form,fields
class RegForm(Form):
    name = fields.CharField(
        label="用户名",
        min_length=8,
        initial="请输入用户名",
        error_messages={
            "required": "不能为空",     #为空时的错误提示
            "invalid": "格式错误",    #不正确是的错误提示
            "min_length": "用户名最短8位"   #不符合最小长度时的错误提示
        }
    )
    
    password = CharField(
    	label = "密码",      #显示的值
   	 	min_length = 6,      #最小长度
    	initial = "请输入密码"   #初始时的值
)

def register(request):
    # 使用组件使,先实例化一个form对象,并传给模板进行渲染
    form_obj = RegForm()
    if request.method == "POST":   #如果是post请求,获取数据并校验
        form_obj = RegForm(request.POST)  # 将post请求拿到的数据封装到form对象中
        if form_obj.is_valid():  # 调用is_valid()方法,检验post请求的数据
            return HttpResponse("注册成功")
    return render(request, "register.html", {"form_obj": form_obj})

在模板文件中:

<body>
<form action="" method="post" novalidate autocomplete="off">
    {% csrf_token %}
    <div>
        <label for="{{ form_obj.name.id_for_label }}">{{ form_obj.name.label }}</label>
        {{ form_obj.name }}{{ form_obj.name.errors.0 }}
    </div>
    <div>
        <label for="{{ form_obj.password.id_for_label }}">{{ form_obj.password.label }}</label>
        {{ form_obj.password }}{{ form_obj.password.errors.0 }}
    </div>
    <button>注册</button>
</form>
</body>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值