Как сделать переменную как часть URL? - PullRequest
0 голосов
/ 27 сентября 2019

Мне нужна структура URL моего GET-запроса, где она выглядит следующим образом:

/api/results?date={YYYY-MM-DD}   
(e.g. 2019-09-20)

Я пробовал

@app.route('/api/results?ddate=<string:game_id>', methods=['GET'])
def get_game(game_id):
    print("game: ", game_id)
    return jsonify(game_id)

Я также пытался:

@app.route('/api/results?ddate=game_id', methods=['GET'])
def get_game():
    game_id= request.args.get('ddate')
    print("game: ", game_id)
    return jsonify(game_id)

Ответы [ 2 ]

0 голосов
/ 27 сентября 2019

Чтобы добавить к ответу уже, если вы настаиваете на том, чтобы идти по нему, как и раньше, вот как вы можете его достичь.

@app.route('/api/results/<string:game_id>', methods=['GET'])
def get_game(game_id):
    print("game: ", game_id)
    return jsonify(game_id)

, и даже можно продлить ваш URL, например, так:

@app.route('/api/results/<string:game_id>/games/../..', methods=['GET'])

в зависимости от предпочтения (обратите внимание, что .. может быть строкой, например, результаты или переменная, например, game_id, отмечая, что для каждой переменной в вашем URL должен быть соответствующий параметр для его передачи в функцию).надеюсь, что это поможет

0 голосов
/ 27 сентября 2019

Учитывая ваш второй код, согласно FLASK doc , request.args.get - это MultiDict с проанализированным содержимым строки запроса.(Часть в URL после знака вопроса) ... Таким образом, вам больше не нужно помещать эту часть в свой URL.Вот как должен выглядеть ваш код:

@app.route('/api/results', methods=['GET'])
def get_game():
    game_id= request.args.get('ddate')
    print("game: ", game_id)
    return jsonify(game_id)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...