Flask / Python 3: Как проанализировать URL-адрес, содержащий ассоциативный массив? - PullRequest
0 голосов
/ 05 июня 2018

Я хотел бы получить от этого URL массив кортежей, который содержит все фильтры и то же самое для страницы.

filter = [('product_type', 'audio'),  ('feature_configuration_menu' , 'volume')]

Мой URL:

curl -X GET 'http://127.0.0.1:5000/api/my_resource?filter[product_type]=audio&filter[feature_configuration_menu]=volume&page[number]=1&page[offset]=5

Я используюфреймворк, python 3

@api.route('/my_resource', methods=['GET'])
def my_resource():
   # From `request.args` I would like this :
   # filter = [('product_type', 'audio'),  ('feature_configuration_menu' , 'volume')]

   return jsonify({'key': 'value'})

Спасибо

в PHP, это так просто $ _GET ['filter'] и он дает вам массив ('product_type' => 'audio', 'feature_configuration_menu' => 'volume').Почему так сложно на Python!?

1 Ответ

0 голосов
/ 05 июня 2018

Не уверен, что фляга может правильно обрабатывать ваш URL.Событие, если оно не идеально, я бы сделал так:

Ваш URL:

http://127.0.0.1:8080/my_resource?filter=product_type-audio&filter=feature_configuration_menu-volume&page=number-1&page=offset-5

WS:

@app.route('/my_resource', methods=['GET'])
def my_resource():
    # From `request.args` I would like this :
    # filter = [('product_type', 'audio'),  ('feature_configuration_menu' , 'volume')]

    filter = [tuple(filter.split('-')) for filter in request.args.getlist('filter')]

    return jsonify(filter)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...