Python_Django-3

Django中的Form组件

1.Django的form的作用:

    1、生成html标签
    2、用来做用户提交的验证
# views.py 
from django import forms

class UserInfo(forms.Form):
     email = forms.EmailField(required=False) #required是否可以为空,如果为False说明可以为空
     host = forms.CharField()   #如果required不写默认为Ture
     port = forms.CharField()
     mobile = forms.CharField()

def user_list(request):
    obj = UserInfo()            #创建了这个对象
    return render(request,'user_list.html',{'obj':obj}) #然后把对象传给html。

前端只要进行调用上文中传入的obj即可相应的生成对应的表单,并且具有输入和验证的功能

# user_list.html  调用。
<form action="/user_list/" method="post">
    <p>主机:{{ obj.host }}</p>
    <p>端口:{{ obj.port }}</p>
    <p>邮箱:{{ obj.email }}</p>
    <p>手机:{{ obj.mobile }}</p>
    <input type="submit" value="submit"/>
</form>

对Form表单的内容进行验证和获取,根据相应的结果进行对应的处理

from django import forms

class UserInfo(forms.Form):
     email = forms.EmailField(required=True)   #required是否可以为空,如果为False说明可以为空
     host = forms.CharField()    #如果required不写默认为Ture
     port = forms.CharField()
     mobile = forms.CharField()

def user_list(request):
    obj = UserInfo()   #创建了这个对象
    if request.method == 'POST':
        #获取用户输入一句话就搞定
        user_input_obj = UserInfo(request.POST)
        '''
        咱们把post过来的数据当参数传给UserInfo咱们定义的这个类,UserInfo会自动会去你提交的数据
              email/host/port/mobile 自动的封装到user_input_obj里,封装到这个对象里我们就可以判断输入是否合法
        '''
        if user_input_obj.is_valid():       #判断用户输入是否合法
             data = user_input_obj.clean()   #获取用户输入
             print data
        else:
            #如果发生错误,捕捉错误。
             error_msg = user_input_obj.errors
            print error_msg    #打印一下然后看下他的类型
            '''
            <ul class="errorlist">
            <li>mobile<ul class="errorlist"><li>This field is required.
            </li></ul></li>
            <li>host<ul class="errorlist"><li>This field is required.</li></ul></li>
            <li>port<ul class="errorlist"><li>This field is required.</li></ul></li>
            </ul>
            '''
            #然后把错误信息返回
             return render(request,'user_list.html',{'obj':obj,'errors':error_msg,})  #然后把对象传给html,在把错误信息传递过去
    return render(request,'user_list.html',{'obj':obj,})   #然后把对象传给html

这时,在前端的展示界面上就可以加上对于错误信息的显示了

<form action="/user_list/" method="post">
    <p>主机:{{ obj.host }}<span>{{ errors.host }}</span></p>
    <p>端口:{{ obj.port }}<span>{{ errors.port }}</span></p>
    <p>邮箱:{{ obj.email }}<span>{{ errors.email }}</span></p>
    <p>手机:{{ obj.mobile }}<span>{{ errors.mobile }}</span></p>
    <input type="submit" value="submit"/>
</form>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值