ホームページ  >  に質問  >  本文

python - Flask里endpoint view function 路由等概念如何理解

阿神阿神2715日前585

全員に返信(3)返信します

  • 黄舟

    黄舟2017-04-17 16:22:02

    コンセプト

    • ルーティング ルール テーブル url_map._rules

      • ルール ルールの 1 つ

        • 関数 / ビュー関数 - 特定のエンドポイント/パスを処理するビュー関数。これは、特定の URL またはグループの URL を処理する関数として単純に理解できます。

        • エンドポイント - フラスコ内部識別子

        • その他 / ルールコンバータ、メソッドなど

    プロセス:

    1. ルール/パスの作成

    2. ルール/パスにエンドポイントを割り当てる

    3. ルール/パスの表示機能を指定します。

    重要なポイント

    1. リクエストが届くと、そのリクエストは rule/path に基づいてアプリ内に配置されます。つまり、

      • ユーザーが /a をリクエストすると、/a ルーティング ルールで指定されたビュー関数が呼び出され、リクエストを処理します。

      • 同様に、/users/<string:username>も同様です。

    2. Flask の url_map ルーティング テーブルでは、rule/pathendpoint はどちらもルーティング ルール テーブル内で一意です

      • 特に endpoint が繰り返されるとエラーが報告されます。

      • rule/path は繰り返し可能ですが、最初の 1 つだけが有効になります。

    3. 開発者が @app.route デコレーターまたは app.add_url_rule() 関数呼び出しでエンドポイントを指定しない場合、flask はこの Rule ルール のデフォルトのエンドポイント、つまりこの view function を指定します。名前。

    関係

    • 1 つの view function は複数の endpointrule を持つことができます。これは 1 対多の関係です。

    • 逆に、1 つの endpoint に対して、rule は 1 つだけ存在でき、view function も 1 つだけ存在できます。

    答えと解説

    さて、被験者の質問を振り返ってみましょう。

    1. 「ルートの内部名は何ですか?」 』

    名前は index です。

    件名が言及した以下のビューでは、エンドポイントが index 関数呼び出しで明示的に @app.route 指定されていないため、エンドポイント/ルーティング ルール テーブルの内部名は です。 リーリー

    2.『エンドポイントはビュー関数に付けられた名前なので、エンドポイント名はビュー関数の名前でしょうか? 』

    いいえ。上記の

    強調 で述べたように、エンドポイントを指定する 明示的な がない場合、flask はビュー関数の名前 (ここでは ) をエンドポイントとして使用します。このルーティングルール。 index

    3. 「エンドポイントパラメータが必要なときにビュー関数の名前を渡す必要があるのはなぜですか?」 』

    ビュー関数 の名前ではなく、実際には の名前です。ある時点でエンドポイントの名前が <🎜 の名前と同じになるだけです。 >ビュー機能endpoint デモ

    リーリー

    返事
    0
  • 大家讲道理

    大家讲道理2017-04-17 16:22:02

    このコード部分を見てください

    リーリー

    クラスを使用してルートを記述することができます。この記述メソッドは、関数名=endpoint

    のデコレーターに抽象化されます。

    返事
    0
  • 高洛峰

    高洛峰2017-04-17 16:22:02

    この回答がエンドポイントの理解に役立つかどうかはわかりません http://segmentfault.com/q/1010000002980493

    返事
    0
  • キャンセル返事