Эффективная связь между двумя приложениями .Net

Подождите, но я только что столкнулся с той же проблемой, пытаясь проанализировать дату и время с помощью RequestParser, и, к сожалению, документы не так полезны для этого сценария, поэтому, увидев и проверив RequestParser и Argument, я думаю, что я нашел проблему:

Когда вы используете type=datetime в методе add_argument, под капотом он просто вызывает datetime с помощью arg, например: datetime(arg), поэтому, если ваш параметр является string, как это: 2016-07-12T23:13:3, ошибка будет an integer is required.

В моем случае я хотел разобрать строку с этим форматом %Y-%m-%dT%H:%M:%S в объект datetime, поэтому я решил использовать что-то например type=datetime.strptime, но, как вы знаете, этот метод нуждается в параметре формата, поэтому я, наконец, использовал это обходное решение:

parser.add_argument('date', type=lambda x: datetime.strptime(x,'%Y-%m-%dT%H:%M:%S'))

Как вы можете видеть таким образом, вы можете использовать все формат, который вы хотите. Кроме того, вы можете использовать partial functool вместо lambda, чтобы получить тот же результат или именованную функцию.

UPDATE

Это обходное решение довольно эффективно, так как оно находится в документах (я просто понял): http://flask-restful.readthedocs.io/en/latest/extending.html#inputs

Приветствия.

15
задан Christian 4 October 2011 в 19:48
поделиться