Flask-variable-rules

提供:Dev Guides
移動先:案内検索

フラスコ–可変ルール

ルールパラメータに変数部分を追加することにより、URLを動的に構築することができます。 この変数部分は、 <変数名> としてマークされます。 これは、ルールが関連付けられている関数にキーワード引数として渡されます。

次の例では、* route()デコレータのルールパラメータには、URL *’/hello’ に付加された <name> 変数部分が含まれています。 したがって、ブラウザで http://localhost:5000/hello/finddevguidesURL として入力されると、 'TutorialPoint' が引数として* hello()*関数に提供されます。

from flask import Flask
app = Flask(__name__)

@app.route('/hello/<name>')
def hello_name(name):
   return 'Hello %s!' % name

if __name__ == '__main__':
   app.run(debug = True)

上記のスクリプトを hello.py として保存し、Pythonシェルから実行します。 次に、ブラウザーを開き、URL * http://localhost:5000/hello/finddevguides。*を入力します。

次の出力がブラウザに表示されます。

Hello finddevguides!

デフォルトの文字列変数部分に加えて、次のコンバータを使用してルールを構築できます-

Sr.No. Converters & Description
1

int

整数を受け入れます

2

float

浮動小数点値の場合

3

path

ディレクトリ区切り文字として使用されるスラッシュを受け入れます

次のコードでは、これらすべてのコンストラクターが使用されています。

from flask import Flask
app = Flask(__name__)

@app.route('/blog/<int:postID>')
def show_blog(postID):
   return 'Blog Number %d' % postID

@app.route('/rev/<float:revNo>')
def revision(revNo):
   return 'Revision Number %f' % revNo

if __name__ == '__main__':
   app.run()

Pythonシェルから上記のコードを実行します。 ブラウザーでURL http://localhost:5000/blog/11 にアクセスします。

指定された番号は、* show_blog()*関数の引数として使用されます。 ブラウザは次の出力を表示します-

Blog Number 11

ブラウザにこのURLを入力します- http://localhost:5000/rev/1.1

  • revision()*関数は、引数として浮動小数点数を使用します。 次の結果がブラウザウィンドウに表示されます-
Revision Number 1.100000

FlaskのURLルールは、* Werkzeugの*ルーティングモジュールに基づいています。 これにより、形成されるURLが一意であり、Apacheが作成した先例に基づいていることが保証されます。

次のスクリプトで定義されたルールを考慮してください-

from flask import Flask
app = Flask(__name__)

@app.route('/flask')
def hello_flask():
   return 'Hello Flask'

@app.route('/python/')
def hello_python():
   return 'Hello Python'

if __name__ == '__main__':
   app.run()

両方の規則は似ていますが、2番目の規則では、末尾のスラッシュ*(/)が使用されます。 その結果、それは正規のURLになります。 したがって、[。underline]# */python #または[.underline]# /python/ #を使用しても同じ出力が返されます。 ただし、最初のルールの場合、[。underline]# /flask/ #URLは[.u​​nderline]# 404 Not Found #ページになります。