パイソン - ジャンゴ - 基本的なコンポーネントの使用状況を形成

フォーム処理の一般的な形式:

reg.html:

<!DOCTYPE HTML> 
<HTML LANG = "EN"> 
<HEAD> 
    <METAのcharset = "UTF-8"> 
    <タイトル>登録ページ</ TITLE> 
</ HEAD> 
<BODY> 

<フォームアクション=「/ REG / "メソッド=" POST "> 
    {%}%csrf_token 
    <P>名:
        <入力タイプ="テキスト"の名前は="ユーザ名「> 
        <スパン> error.user {{}} </ span>の{#エラーが発生した場合}エラーメッセージを取得する#
    </ P> 
    <P>パスワード:
        <入力タイプ= "パスワード" NAME = "PWD"> 
        の<span> error.pwd {{}} </スパン> {#エラーがある場合、それを取得エラー}#
    </ P> 
    <P> 
        <INPUTタイプ= "提出"> 
    </ P> 
</ FORM> 

</ BODY> 
</ HTML>

views.py:

HttpResponse、からレンダリングdjango.shortcutsをインポート
app01インポートモデルから


:DEF REG(要求)
    エラー= {「ユーザ」:「」、「PWD」:「」}#エラーメッセージが格納された辞書
    request.method場合== " POST ":
        ユーザ名= request.POST.get("ユーザ名")
        パスワード= request.POST.get"( "PWD)

        LEN(ユーザー名)が> 5のIF。:
            エラー["ユーザーが"] ="ユーザ名が5より大きくすることはできません」
        <6 LEN(パスワード)IF 
            "パスワードは6未満にすることはできません" [ "PWD"]誤差= 
        10のelif LEN(パスワード)>:
            エラー[ "PWD"] = "パスワードが10を超えることはできません" 

    "、(要求をレンダリング返しますreg.html "{"エラー「:エラー})

訪問は、http://127.0.0.1:8000 / REG /

入力は10個の以上の数字の5桁のユーザー名とパスワードよりも大きく、

 

 

処理コンポーネントは、フォームを使用して形成します。

reg2.html:

<!DOCTYPE HTML> 
<HTML LANG = "EN"> 
<HEAD> 
    <METAのcharset = "UTF-8"> 
    <タイトル>登録ページ</ TITLE> 
</ HEAD> 
<BODY> 

<フォームアクション=「/ REG2 / "METHOD =" POST「NOVALIDATE> 
    {%csrf_token%} 
    {} {}#{#1 form_obj.as_pタップフォームPに表示} 
{#{} {} {#1 form_obj.errors.usernameは別のエラーメッセージ#}ユーザー名を取得します
{#{{form_obj.errors.password}} { # 別々に取得されたパスワードのエラーメッセージ}#
    <P>の<input type = "送信"> </ P> 
</ FORM> 

</ BODY> 
</ HTML>

form_objは、ユーザー名、パスワードエラーに直接取得することができ、エラーも別途入手することができます

views.py:

、のHttpResponseのレンダリングdjango.shortcutsインポート
app01インポートモデルから


ジャンゴからは、#Importコンポーネント導入フォームフォーム


#フォームクラス定義
クラスregformを(forms.Form):
    ユーザ名= forms.CharField(
        。MIN_LENGTH = 5、
        ラベル= "ユーザ名"を、 #タグ名を設定
        #エラー
        = error_messages { 
            "MIN_LENGTHを": "ユーザ名が5を超えることはできません" 
        } 
    パスワード= forms.CharField(
        。MIN_LENGTH = 6、
        ラベル= "パスワード"、ラベル#セット
        #エラー
        error_messagesを{= 
            「MIN_LENGTH」:「パスワードは6より小さくすることはできません!」
        } 

 
DEF REG2(要求):
    form_obj = RegForm()#GETリクエスト、オブジェクトがフォームにインスタンス化され

    : "POST" IF request.method == 
        form_obj = regform(request.POST)
        私たちがチェックしますか助けるために#フォーム
        form_obj.is_valid場合():#はform_obj値があるかどうかを判断する
            パスは

    、レンダリング(リクエスト、 "reg2.html"を返し、 { "form_obj":form_obj})

訪問は、http://127.0.0.1:8000 / REG2 /

 

おすすめ

転載: www.cnblogs.com/sch01ar/p/11468888.html