2つの異なるパラメーターを必要とする小さなAPIをFlaskで作成しようとしています。ティッカーとキー(認証用)。
これが私のルートの定義方法です:
api_bp = Blueprint("api", __name__, url_prefix="/api")
@api_bp.route("/1.0/<string:ticker>?key=<string:key>", methods=["GET"])
def some_function(ticker:str, key:str):
...
ただし、404 notfoundエラーが発生します。2番目の部分を削除してURLを作成すると:
@api_bp.route("/1.0/<string:ticker>", methods=["GET"])
すべてが正常に動作します。どうしてこれなの?
リクエストパスパラメータは、実際の例のように過去のものです。クエリパラメータ(すべて?の後)は次のように機能します。アプリやブループリントのルート定義にそれらを追加するのではなく、リクエスト引数を取得することで値を取得するだけです。
request.args.get('key', None)
'key'が存在しない場合、値はNoneです。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加