溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

django-表單

發(fā)布時間:2020-07-20 03:59:53 來源:網(wǎng)絡(luò) 閱讀:379 作者:lixiaobo994 欄目:開發(fā)技術(shù)

表單

    表單可以驗證輸入,也可以生成html

    <form action="/user_list/" method="post">

        <p>用戶類型:` obj`.`user_type `

            <span>{% error_message errors.user_type %}</span>

        </p>

        <p>主機:` obj`.`host `

            <span>{% error_message 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>

        <p>備注:` obj`.`memo ` <span>` errors`.`memo `</span></p>

        <input type="submit"  value="submit" />

    </form>



    #z自定義匹配類型

        def mobile_validate(value):

            mobile_re = re.compile(r'^(13[0-9]|15[012356789]|17[678]|18[0-9]|14[57])[0-9]{8}$')

            if not mobile_re.match(value):

                raise ValidationError('手機號碼格式錯誤')


    #創(chuàng)建一個繼承Form的類

    class UserInfo(forms.Form):

        user_type_choice = (

            (0, u'普通用戶'),

            (1, u'高級用戶'),

        )

        

        user_type = forms.IntegerField(widget=forms.widgets.Select(choices=user_type_choice,

                                                                   attrs={'class': "form-control"}))

        email = forms.EmailField(error_messages={'required': u'郵箱不能為空'}) #自定義表單錯誤提示

        host = forms.CharField(error_messages={'required': u'主機不能為空'})

        port = forms.CharField(error_messages={'required': u'端口不能為空'})

        mobile = forms.CharField(validators=[mobile_validate, ],  #調(diào)用自己定義的匹配函數(shù)

                                 error_messages={'required': u'手機不能為空'},

                                 widget=forms.TextInput(attrs={'class': "form-control", #添加標簽屬性

                                                              'placeholder': u'手機號碼'}))

        memo = forms.CharField(required=False,

                               widget=forms.Textarea(attrs={'class': "form-control",

                                                            'placeholder': u'備注'})

                               )


    #前端提交數(shù)據(jù)處理函數(shù)

    def user_list(request):

        obj = UserInfo()

        if request.method == "POST":

            user_input_obj = UserInfo(request.POST)

            if user_input_obj.is_valid():

                data = user_input_obj.clean()

                print data

            else:

                error_msg = user_input_obj.errors.as_data()

                return render(request, 'user_list.html', {'obj': user_input_obj, 'errors': error_msg})

        return render(request, 'user_list.html', {'obj': obj})


向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI