「」」 ソースデフルート(自己、ルール、**オプション)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
ランキング