前言

创新互联建站专注于企业全网整合营销推广、网站重做改版、柯城网站定制设计、自适应品牌网站建设、HTML5建站、商城网站定制开发、集团公司官网建设、外贸网站制作、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为柯城等各大城市提供网站开发制作服务。
Hey,大家好呀,我是码农,星期八。
本次咱们来get一个新技能,Form组件。
Form组件主要用于验证表单数据。
为什么需要Form组件
注:Form组件,只适用于,前后端未分离的项目中,主要用于验证表单数据,所以,关键字是表单!!!
比如像哔哩哔哩的注册界面。
我点击注册,它不仅仅可以知道我的注册昵称是否存在,密码是否小于6位,手机号格式错误。
还会把错误信息一直留在上面,给我提示。
我们就以这个为雏形,来简单的写一个小小的注册界面。
普通版注册
代码
urls.py
- from django.urls import path
 - from web import views
 - urlpatterns = [
 - path('reg/', views.reg,),
 - ]
 
web/views.py
- def reg(request):
 - if request.method == "GET":
 - return render(request, "reg.html")
 - nick = request.POST.get("nick")
 - pwd = request.POST.get("pwd")
 - phone = request.POST.get("phone")
 - error = {}
 - if len(pwd) < 6:
 - error["pwd"] = "密码小于6位"
 - if len(phone) != 11:
 - error["phone"] = "手机号格式错误"
 - # error为空表示未触发异常
 - if not error:
 - print("写入数据库", nick, pwd, phone)
 - return HttpResponse("注册成功")
 - else:
 - return render(request, "reg.html", {"error": error})
 
templates/reg.html
登录 - {{ error.pwd }}
 - {{ error.phone }}
 
实现效果
如果填写的信息正常。
填写信息
跳转之后
如果填写的信息错误。
填写信息
错误提示
小总结
但是你发现虽然能把错误信息显示出来。
但是我原来填写的东西没了啊!!!,因为html form表单提交是刷新页面提交的!
雾草,没了,这是少的,如果有十几个???,那不就气死了
好像我记得我上学时,好多网站都是这。。。好像我也骂了很久,直到前后端分离时,才好一点!
Form组件版注册
再使用之前,需要将Django项目的settings.py的LANGUAGE_CODE设置为zh-hans
代码
以下代码可能看不懂,大概理解就好!
urls.py
同上
web/views.py
- from django.shortcuts import render, HttpResponse
 - from django.forms import Form
 - from django.forms import fields
 - from django.forms import widgets
 - # Create your views here.
 - class RegForm(Form):
 - name = fields.CharField(
 - widget=widgets.TextInput(attrs={"placeholder": "昵称"})
 - )
 - pwd = fields.CharField(
 - min_length=6,
 - widget=widgets.TextInput(attrs={"placeholder": "密码"})
 - )
 - phone = fields.CharField(
 - min_length=11,
 - max_length=11,
 - widget=widgets.TextInput(attrs={"placeholder": "手机号"})
 - )
 - def reg(request):
 - if request.method == "GET":
 - form = RegForm()
 - return render(request, "reg.html", {"form": form})
 - form = RegForm(request.POST, request.FILES)
 - # 验证表单数据
 - if form.is_valid():
 - result = form.clean()
 - print(result)
 - return HttpResponse("登录")
 - return render(request, "reg.html", {"form": form})
 
templates/reg.html
登录 - {% for foo in form %}
 - {{ foo }}
 - {{ foo.errors.0 }}
 - {% endfor %}
 
实现效果
如果填写的信息正常。
同上
如果填写的信息错误。
小总结
这是我点击提交之后报错的结果!
可以发现,即使刷新页面提交,还是会把原来的数据保存下来,并且还有验证失败的信息!
Form总结
从上述示例可以发现。
Django Form组件最起码具有以下功能:
没错,它的主要功能其实也就是这。
如果使用Django进行开发,并且使没有前后端分离的,必用Form组件!
每一份发奋努力的背后,必定有巨大的赏赐。
                网站栏目:一篇文章带你了解DjangoForm组件(入门篇)
                
                当前地址:http://www.csdahua.cn/qtweb/news48/245748.html
            
网站建设、网络推广公司-快上网,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 快上网