Django Form组件

Python微信订餐小程序课程视频

https://edu.csdn.net/course/detail/36074

Python实战量化交易理财系统

https://edu.csdn.net/course/detail/35475
目录* Django Form组件
+ 简介
+ form组件和传统form表单对比
+ 校验字段
- 校验字段实操
+ forms渲染标签
- 自己手动写HTML页面
- forms渲染标签(一)
- forms渲染标签(二)【常用】
- forms渲染标签(三)
+ 渲染错误信息
- * 示例
+ form渲染样式之参数配置
+ forms组件全局钩子和局部勾子
- 局部钩子
- 全局钩子
+ 错误信息显示

Django Form组件

查看源图像

简介

Django Form 组件有两大功能,用于对页面进行初始化,生成 HTML 标签,此外还可以对用户提交对数据进行校验(显示错误信息)

  • 数据重置
  • 校验规则

form组件和传统form表单对比

  • 当我们用传统的form表单提交时会刷新页面,如果这个我们表单中的某项填错了,刷新后我们正确的选项也没有了
  • 传统的form表单需要我们自己亲自校验每一项,其工作量太大
  • form组件前端自动生成表单元素
  • form组件可自动验证表单内容信息
  • form组件可保留用户上次输入的信息

导入form django import froms

校验字段

ps:这里数据量较小使用sqlite3

# settings.py需要修改的配置
# LANGUAGE\_CODE = 'en-us'
LANGUAGE_CODE = 'zh-Hans'  # 修改成中文

# TIME\_ZONE = 'UTC'
TIME_ZONE = 'Asia/Shanghai'   # 时间使用上海的

USE_I18N = True

USE_L10N = True

USE_TZ = False    # 改为当前时区,默认为True


校验字段实操

我们在不使用forms的情况下也可以校验用户注册的字段长度是否符合标准,比如通过len()等方法,但是过于麻烦,下面通过forms来校验用户字段长度;(注册举例)

'''
1.注册页面,forms校验,需要定义一个类,来继承forms.Form
2.自定义类内规定的字段就是校验规则
3.实例化类,得到form对象,使用is\_valid校验,校验成功可以通过对象.cleanded.data获取到干净的数据,校验失败通过对象.erros返回错误信息
'''
需要注意的是,实例化对象要传入校验数据!
eg:reg_obj = Reg(data=request.POST)

'''Myforms.py'''
from django import forms

class Register(forms.Form):
    username = forms.CharField(max_length=8, min_length=3, label='用户名',error_messages={'min\_length':'太短了',"required": "该字段不能为空!"})  
    password = forms.CharField(max_length=11, min_length=3, label='密码')
    re_password = forms.CharField(max_length=11, min_length=3, label='确认密码')
    email = forms.EmailField(label='邮箱')

  • label:输入框前面的文本信息。
  • error_message:自定义显示的错误信息,属性值是字典, 其中 required 为设置不能为空时显示的错误信息的 key
'''views.py'''
from django.shortcuts import render,HttpResponse,redirect
from app01.My_forms import Register

def register(request):
    if request.method == 'GET':
        return render(request,'register.html')
    else:
        # 实例化,传入校验数据
        reg_form_obj = Register(data=request.POST)
        # 判断校验是否可以通过
        if reg_form_obj.is_valid():
            # 校验通过存入数据库
            print('校验通过')
            print(reg_form_obj.cleaned_data)
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值