Flaskフレームワーク基本機能
2004 ワード
引用する
この文書では、Flaskフレームワークのいくつかの基本的な機能について簡単にまとめます.ルーティングシステム テンプレート データベース いくつかの一般的なFlaskライブラリ 簡単なFlask事例
FlaskはPythonに基づいてJinja 2テンプレートとWSDIサービスに依存するフレームワークです.URLにアクセスすると、ブラウザはHTTP要求を発行し、WSDIは私たちの要求を受信し、Flaskフレームワークが提供する一連の機能に渡して要求を処理し、HTTP応答をブラウザ(クライアント)に返す.Djangoと比較してFlaskはマイクロフレームワークとしてそろっているわけではありませんが、拡張機能をインストールすることで提供されるサービスを増やすことができ、カスタマイズ性が強いです.次は簡単なFlaskの事例です.http://127.0.0.1:5000を選択すると、ブラウザにhello flaskが表示されます.
上記のプログラムでは、ルートディレクトリをindexルーティング関数関数にバインドし、localhost:5000で実行するappのFlaskインスタンスを作成しました.上記のプログラムを実行すると、pythonプログラム名で直接実行できます.開発環境に使用する場合、他に実行方法がある場合は、Flaskソースコードのコメントがはっきり書かれており、FLASK_を設定する必要があります.DEBUG環境変数はプログラム名であり、
ルーティングシステム
上記の手順では、
一般的なルーティングシステムには、次の5つがあります. @app.route('/usr/') @app.route('/usr/') @app.route('/usr/') @app.route('/usr/') @app.route('/usr', methods=['GET', 'POST'])
以下に対応関係を示します.
正規表現がサポートされていないことがわかります.この点については、Segment Faultの回答を参考にすることができます.
To Be continue
この文書では、Flaskフレームワークのいくつかの基本的な機能について簡単にまとめます.
FlaskはPythonに基づいてJinja 2テンプレートとWSDIサービスに依存するフレームワークです.URLにアクセスすると、ブラウザはHTTP要求を発行し、WSDIは私たちの要求を受信し、Flaskフレームワークが提供する一連の機能に渡して要求を処理し、HTTP応答をブラウザ(クライアント)に返す.Djangoと比較してFlaskはマイクロフレームワークとしてそろっているわけではありませんが、拡張機能をインストールすることで提供されるサービスを増やすことができ、カスタマイズ性が強いです.次は簡単なFlaskの事例です.http://127.0.0.1:5000を選択すると、ブラウザにhello flaskが表示されます.
from flask import Flask
app = Flask(__name__)
@app.route('/')
def index():
return 'hello, flask'
if __name__ == '__main__':
app.run(host='127.0.0.1', port=5000)
上記のプログラムでは、ルートディレクトリをindexルーティング関数関数にバインドし、localhost:5000で実行するappのFlaskインスタンスを作成しました.上記のプログラムを実行すると、pythonプログラム名で直接実行できます.開発環境に使用する場合、他に実行方法がある場合は、Flaskソースコードのコメントがはっきり書かれており、FLASK_を設定する必要があります.DEBUG環境変数はプログラム名であり、
flask run
でサーバを実行できます.ルーティングシステム
上記の手順では、
@app.route('/')
は装飾器です.python内の装飾器は、装飾された関数をイベントのコールバック関数として登録するためによく使用されます.具体的には、Webブラウザが/を要求すると、indexという関数がトリガーされ、index関数の戻り値が応答としてブラウザに返される.異なるURLには同じビュー処理関数があり、言い換えれば、1つの関数が複数のURLに対応することができる.これはDjangoのMTVモードにおいて、その中のviewsに対応する.一般的なルーティングシステムには、次の5つがあります.
以下に対応関係を示します.
DEFAULT_CONVERTERS = {
'default': UnicodeConverter,
'string': UnicodeConverter,
'any': AnyConverter,
'path': PathConverter,
'int': IntegerConverter,
'float': FloatConverter,
'uuid': UUIDConverter,
}
正規表現がサポートされていないことがわかります.この点については、Segment Faultの回答を参考にすることができます.
To Be continue