Как увеличить аргументы синтаксического анализа запроса на основе ввода данных пользователем?

Я делаю приложение для фляги, используя flask_restx.

Я выполняю синтаксический анализ запроса, используя это, где я делаюparser.add_argument(...).

Образец моего кода:

parser.add_argument("num_rectangles", type=int,
                    required=True,
                    default=1,
                    choices=(1, 2, 3,
                             "More than three",
                             "A different shape (Example: Circle)"),
                    help="Roof dimensions. How many rectangular " +
                    " areas are involved?")
parser.add_argument("rec_length", type=float,
                    required=True,
                    help="Length of the rectangle 1 (in meters)")
parser.add_argument("rec_breadth", type=float,
                    required=True,
                    help="Breadth of the rectangle 1 (in meters)")

Теперь, если пользователь выбирает num_rectangles = 1, то rec_length & rec_breadthаргументы нужно задать только один раз. Но если пользователь выбираетnum_rectangles = 2, то аргументы нужно задать дважды и так далее.

Пример:

Если num_rectangles = 1

parser.add_argument("rec_length_1", type=float,
                    required=True,
                    help="Length of the rectangle 1 (in meters)")
parser.add_argument("rec_breadth_1", type=float,
                    required=True,
                    help="Breadth of the rectangle 1 (in meters)")

Если num_rectangles = 2

parser.add_argument("rec_length_1", type=float,
                    required=True,
                    help="Length of the rectangle 1 (in meters)")
parser.add_argument("rec_breadth_1", type=float,
                    required=True,
                    help="Breadth of the rectangle 1 (in meters)")
parser.add_argument("rec_length_2", type=float,
                    required=True,
                    help="Length of the rectangle 2 (in meters)")
parser.add_argument("rec_breadth_2", type=float,
                    required=True,
                    help="Breadth of the rectangle 2 (in meters)")

Есть ли способ добиться этого, возможно, используя циклы?

0 ответов

Другие вопросы по тегам