Flask-variable-rules
フラスコ–可変ルール
ルールパラメータに変数部分を追加することにより、URLを動的に構築することができます。 この変数部分は、 <変数名> としてマークされます。 これは、ルールが関連付けられている関数にキーワード引数として渡されます。
次の例では、* route()デコレータのルールパラメータには、URL *’/hello’ に付加された <name> 変数部分が含まれています。 したがって、ブラウザで http://localhost:5000/hello/finddevguides が URL として入力されると、 '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は[.underline]# 404 Not Found #ページになります。