(あなたが見ることができたときに)ルートの設定やパラメータをルーティングフラスコ

「」」
  ソースデフルート(自己、ルール、**オプション)2 app.pyで
  3 @ app.route()ルーティングパラメータ:
  1.最初の分布をルーティング要求パスパラメータ4位置
  5①スタティックルーティングパラメータ:/インデックス/ /ベース、等
  6つの②動的ルーティングパラメータ:/インデックス/ <名前>使用<変数名>ルーティングルーティングは、ルーティング動的呼ばれ
  7つの動的ルーティングパラメータ<名前>を受信し、数値文字列が、優先呼の開発にビューのint
  8 int型のような/インデックス/ <INT:ID>、指定することができ、機能の観点から同じ名前のパラメータを受信するように成形されなければなりません
  9 
 10 2.methods = [ 'GET'、 'POST']
 2.1 11の機能は、(405要求現在のモードが許可されていない)現在のビューモード要求をサポートします
 12個の2.2イテラブルパラメータは、大文字と小文字を区別しないように要求する、デフォルトGETに設定されていません
 13 
 14 
 15 3.endpoint = ''
 3.1 16ルートマップビュー機能は、エンドポイントビュー機能(view_func .__ name__)デフォルト名を指定しません
 同じ名前の機能を表示することができない、したがって{view_funcエンドポイント}格納され、そして17 3.2 view_funcsアイテムは、ビュー関数に格納されます。
 カスタムデコレータの使用にのみ指定されたエンドポイントは、複数のビューのカスタムデコレータ誤差関数の使用を回避することが18 3.3注意。
 19 
 20 
 21 4.defaults = {キー:値}
 22デフォルトのパラメータ設定、パラメータを受信する機能を考慮して定義する必要があります
 23 
 24 5.redirect_to = ''
 25永久的なリダイレクト(301または308)
 26シナリオ:ビューのコレクションユーザが機能に対応するアドレスをルーティングされる前に、そのページが新しいパスのために使用されていない、避けるために、ユーザの好みにアクセスできないので、恒久的なリダイレクトを設定します
 27 
 28 6.strict_slashes =真/偽
 厳密なモード、デフォルトは厳密ルーティングモードに一致するように設定されていない場合、パスの一致をルーティングする29セット
 30 
 31の7.補足ヒント:
 図32は、ビュー解決要求の機能名称を介して逆の経路をfalsk。
 33①fromフラスコインポートなurl_for
 現在のビューのルート要求パスに対応する(「関数名」)==>関数②url_for34(特に知識6を参照)
 35 FBV:app.add_url_rule( '/'、終点= ''、view_func = FUNC)CBV:app.sdd_url_rule( '/'、終点= ''、view_func = CLASS.as_view(NAME = ''))
 36 ''」
 フラスコインポートフラスコrender_template、要求、セッション、リダイレクトから37、なurl_for
 38
 39アプリ=フラスコ(__ name__)
 40 app.configを[ 'DEBUG'] =真
 41 app.secret_keyは= 'werf23456'
 42 
 43 
 44#の1.flasklルート:
 45#1.1静的および動的ルーティング
 46 @ app.route( '/インデックス')
 47 DEFインデックス():
 48リターンF「スタティックルート要求!"
 49 
 50 
 51個の#1.2動的ルーティングパラメータ
 52個の#1.2.1動的ルーティングマッチング変数
 53 @ app.route( '/インデックス/ <名前>')#http://192.168.16.14:9000/index/yang
 54デフINDEX2(名):
 55リターンF「現在のリクエストの動的パラメータがある:{名前}」現在のリクエストの#の動的パラメータがある:陽
 56 
 57 
 58#1.2.2ダイナミック指定された変数の一致をルーティング
 59 @ app.route( '/インデックス/名= <名前>')#http://192.168.16.14:9000/index/name=yang
 60デフindex3(名):
 F 61リターン「現在のリクエストの動的パラメータは、{名前}」#現在の要求が動的パラメータ名:ヤン
 62 
 63 
 #64 1.2.3動的ルーティングマッチング整数変数
 65 @ app.route( '/インデックス/ <INT:ID>')#http://192.168.16.14:9000/index/1234
 66デフindex4(ID):
 67リターンF '現在の要求の数は、{ID}#現在のページ要求である:1234年
 68 
 69 
 70#2.methods = []サポートされていないリクエストパラメータ設定モードがデフォルトGETに設定されていません
 71 @ app.route(「/ログイン」、メソッド= [「GET」、「POST」])#要求のパラメータ設定は、大文字と小文字を区別しない、ソースコードは、上部自動的に
 72 DEFログイン():
 73もしrequest.method == 'GET':
 74リターンrender_template( 'login.htmlと')
 75のelif request.method == 'POST':
 76名= request.form.get( 'ユーザ名')
 77 PWD = request.form.get( 'PWD')
 78名== '陽' とPWD == '123456' の場合:
 79セッション[ 'ユーザ名'] =ユーザ名
 80リターンのログインには、200 OKをsuccessed!」
 それ以外の81:
 82リターンのログインに失敗しました!!! "
 83 
 84 
 85#3.endpoint =「」ルーティング機能マップビュー
 86 ''」
 87のカスタムビューデコレータ複数の装飾機能、ルート内がない場合はユニークなエンドポイント、
 すべての装飾88は、デコレータ機能のビューが内部関数を返しているので、同じ名前を与えられています
 89 AssertionErrorが:ビュー機能マッピングは、既存のエンドポイント機能を上書きされていますインナー
 90 ''」
 91 
 92 
 93デフAUTH(FUNC):
 94 DEFインナー(* argsを、** kwargsから):
 95 session.get( 'ユーザ名')の場合:
 96リターンFUNC()
 それ以外の97:
 98リターンは、「アクセスがログインしていない持っていません!"
 99 
100リターンインナー
101 
102 
103 @ app.route( '/ DATA1'、終点= 'DATA1')
104 @auth
105 DEF DATA1():
106リターン「あなたが/ DATA1によって現在のページに、パスにログインしています!"
107 
108 
109 @ app.route( '/ DATA2'、終点= 'DATA2')
110 @auth
111 DEF DATA2():
112リターン「あなたは/ DATA2によって現在のページに、パスにログインしています!"
113 
114 
115#4.defaults = {キー:値}デフォルトパラメータ
116 @ app.route( '/キー'、デフォルト= { 'ID':23})
117 DEFキー(ID):
118戻りF 'デフォルトのパラメータ値を設定ルーティング:{ID}
119 
120 
121#5.redirect_to = '' 永久リダイレクション(ステータスコード301または308)
122 @ app.route( '/管理'、redirect_to = '/リダイレクト')
123 DEF管理者():
124リターンのオリジナルページ "
125 
126 
127 @ app.route( '/リダイレクト')
128 DEF REDI():
129リターンのアクセス/管理永続リダイレクト新しいページ!"
130 
131 
132#1 6.strict_slashes =厳密モードを設定するルーティング経路がデフォルトルート厳密マッチングパターンに設定されていないかどうかを真/偽マッチ
#133(要求時に添加されていない場合、ルート厳密なパターンマッチングは、/、フラスコ308が返されるパスプラス/パス、要求プラス/リダイレクション)
134 
デフォルトのモードを設定していない135#6.1 strict_slashesは、エラーが404プラスアクセスされます場合は、no /、ルートバックでね、厳密ではありません
136 @ app.route( '/ strict_true'、strict_slashes =真)
137デフstrict_true():
'厳密なパターンマッチング{なurl_for( "strict_true")}' F 138復帰
139 
140#6.2 strict_slashes = Falseを、指定された非厳密モデル,,ルーティングバック追加/ノーマルマップはまだすることができ
141 @ app.route( '/ strict_false /'、strict_slashes =偽)
DEF strict_false 142():
F 143リターン '非厳密配線パターンマッチング{なurl_for( "strict_false")}
144 
145 
146 
147 __name__ == '__main__' の場合:
148 app.run( '0.0.0.0'、9000 ) 

出典:https://www.cnblogs.com/open-yang/p/11172301.html

おすすめ

転載: www.cnblogs.com/kaibindirver/p/12664152.html