フォーム処理の一般的な形式:
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 /