Pythonベース(Django 2)
本編は前編Pythonベース(Django)に続く
六、Form
説明:DjangoのFromには、自分をHTMLに表示する機能と、データを検証する機能の2つがあります.
個人的にはHTMLという機能を表示するのは不便だと思いますが、表示スタイルがあまり調整されていないので、Formのチェックデータのみの機能を使うことをお勧めしますので、ここではスタイルの設定については紹介せず、チェックデータの機能を重点的に紹介します.
Formの使用は大きく3つのステップに分けられます.
まずクラスを定義します.クラスの各フィールドはFormのプロパティです.
次に、クラスに基づいてオブジェクトを作成し、検証方法を定義します.作成したオブジェクトをフロントエンドのHTMLページ参照に戻し、対応するHTMLコードを生成します.(クラスを呼び出す方法により、フロントエンドユーザがコミットしたデータを検証および取得できます.)
最後にHTMLで参照:HTMLのラベルとスタイルがカスタマイズされている場合、ラベルのname属性の値はFormのフィールド名と一致しなければなりません.そうしないと、バックグラウンドではデータの取得と検証ができません.
例:
1、クラスを定義します.
ファイル名:account.py
2、クラスに基づいてオブジェクトを作成し、検証方法を定義する
ファイル名:views.py
3、HTMLでの引用
七、Model(続き)
六、Form
説明:DjangoのFromには、自分をHTMLに表示する機能と、データを検証する機能の2つがあります.
個人的にはHTMLという機能を表示するのは不便だと思いますが、表示スタイルがあまり調整されていないので、Formのチェックデータのみの機能を使うことをお勧めしますので、ここではスタイルの設定については紹介せず、チェックデータの機能を重点的に紹介します.
Formの使用は大きく3つのステップに分けられます.
まずクラスを定義します.クラスの各フィールドはFormのプロパティです.
次に、クラスに基づいてオブジェクトを作成し、検証方法を定義します.作成したオブジェクトをフロントエンドのHTMLページ参照に戻し、対応するHTMLコードを生成します.(クラスを呼び出す方法により、フロントエンドユーザがコミットしたデータを検証および取得できます.)
最後にHTMLで参照:HTMLのラベルとスタイルがカスタマイズされている場合、ラベルのname属性の値はFormのフィールド名と一致しなければなりません.そうしないと、バックグラウンドではデータの取得と検証ができません.
例:
1、クラスを定義します.
ファイル名:account.py
from django import forms # forms
class Userinfo(forms.Form): # forms.Form
email = forms.EmailField(required=False) # , required=False
username = forms.CharField() #forms ,
password = forms.CharField()
2、クラスに基づいてオブジェクトを作成し、検証方法を定義する
ファイル名:views.py
from django.shortcuts import render,HttpResponseRedirect
from app01 import account as AccountForm #
def login(req): #
obj = AccountForm.Userinfo(req.POST) #
if req.method == 'POST': # POST
error = ''
if obj.is_valid(): #
all_data = obj.clean() # ( )
if all_data['username'] == 'test' and all_data['password'] == '123':
return HttpResponseRedirect('/index/') # URL:/index/
else:
error = obj.errors #
return render(req,'account/login.html',{'error':error}) # 。
# return render(req,'account/login.html',{'obj':obj}) # HTML , HTML 。
return render(req,'account/login.html') # , HTML 。
3、HTMLでの引用
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Login</title>
</head>
<body>
<div style="margin: 20px">
<form action="/login/" method="post">
<p>
<input type="text" class="span3" name="username" placeholder="Username"> <!-- name Form -->
<span>{{ error.username }}</span> <!-- , -->
</p>
<p>
<input type="password" class="span3" name="password" placeholder="Password">
<span>{{ error.password }}</span>
</p>
<p>
<input type="text" class="span3" name="email" placeholder="Email">
<span>{{ error.email }}</span>
</p>
<input type="submit" value="submit">
</form>
</div>
</body>
</html>
七、Model(続き)