PythonWeb框架之Django框架Form组件用法详解-创新互联
本文实例讲述了Python Web框架之Django框架Form组件用法。分享给大家供大家参考,具体如下:
创新互联建站是一家专注于成都网站制作、成都网站建设、外贸营销网站建设与策划设计,曲松网站建设哪家好?创新互联建站做网站,专注于网站建设10余年,网设计领域的专业建站公司;建站业务涵盖:曲松等地区。曲松做网站价格咨询:13518219792Form简介
在HTTP中,表单(form标签),是用来提交数据的,其action属性说明了其传输数据的方法:如何传、如何接收。
访问网站时,表单可以实现客户端与服务器之间的通信。例如查询,就用到了表单(其属性中,action=get)。
再比如说注册与登陆,也是要用到表单的。但这里由于涉及到隐私问题,需要保证数据传输的安全性,因此其传输方法就应当使用post而非get。
总之,对客户端来说,表单就是用来向服务器提交数据的;
而对服务器来说,表单就是你提供给客户端的发送信息的渠道,你需要对用户发送来的信息进行处理和响应,以达到页面的交互。
Django Form的功能
- 生成HTML标签
- 验证用户数据(显示错误信息)
- HTML Form提交保留上次提交数据
- 初始化页面显示内容
Django Form验证流程
用于验证用户请求数据合法性的一个组件
如果没有Form就得繁琐地用正则表达式了
a. 用户提交数据的验证
1、创建模版 class LoginForm(forms.Form):...
2、将请求交给模版,创建一个对象 obj = LoginForm(request.POST)
3、进行验证 obj.is_valid()
4、获取正确信息 obj.clean()
5、获取错误信息 obj.errors
b. 错误信息提示
Form提交,刷新页面的特性,模版对象内部值丰富,再显示时,值和错误信息都有
c. 保留上一次提交的数据
1、自动生成html标签
2、保留上一次提交的数据
Form的创建
from django.shortcuts import render, redirect from django import forms #这里为了简单,把form类写到视图函数 # 模版 class LoginForm(forms.Form): # 模版中的元素 user = forms.CharField(min_length=6,error_messages={"required": '用户名不能为空','min_length': '用户名长度不能小6'}) email = forms.EmailField(error_messages={"required": '邮箱不能为空','invalid': '邮箱格式错误'}) def login(request): if request.method == "GET": # 数据库中获取 obj = LoginForm() return render(request,'login.html',{'oo': obj}) elif request.method == "POST": """ obj = LoginForm(request.POST) # 验证 status = obj.is_valid() print(status) value_dict = obj.clean() 验证成功的值,输入格式正确的拿到了 print(value_dict) # error_obj = obj.errors error_obj = obj.errors.as_json() print(error_obj) code定义错误信息 """ obj = LoginForm(request.POST) if obj.is_valid(): value_dict = obj.clean() print(value_dict) # create(**value_dict) else: # 封装了所有的错误信息 # error_obj=obj.errors # print(obj.errors['email'][0],type(error_obj['email']) # print(obj.errors['email'][0],type(error_obj['email'][0]) # print(obj.errors["user"][0]) # print(type(error_obj)) from django.forms.utils import ErrorDict pass return render(request, 'login.html',{'oo': obj})
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
分享名称:PythonWeb框架之Django框架Form组件用法详解-创新互联
网页地址:http://ybzwz.com/article/dhgoes.html