python - español - flask>-< restful
¿Cuál es el formato de fecha y hora para el analizador frasco reparador? (1)
Un poco tarde, pero he estado en el mismo problema, tratando de analizar una fecha con RequestParser, y lamentablemente los documentos no son tan útiles para este escenario, así que después de ver y probar el código RequestParser y Argument, creo que encontré el problema :
Cuando usas type=datetime
en el método add_argument
, debajo del capó simplemente llama a datetime
con el arg, así: datetime(arg)
, entonces si tu param es una cadena como esta: 2016-07-12T23:13:3
, el error será an integer is required
.
En mi caso, quería analizar una cadena con este formato %Y-%m-%dT%H:%M:%S
en un objeto datetime, así que pensé usar algo como type=datetime.strptime
pero como sabes este método necesita un parámetro de formato, así que finalmente utilicé esta solución alternativa:
parser.add_argument(''date'', type=lambda x: datetime.strptime(x,''%Y-%m-%dT%H:%M:%S''))
Como puede ver de esta manera, puede usar el formato de fecha y hora que desee. También puede usar functool partial
lugar de lambda para obtener el mismo resultado o una función con nombre.
ACTUALIZAR
Esta solución alternativa es bastante válida ya que está en los documentos (me acabo de dar cuenta): http://flask-restful.readthedocs.io/en/latest/extending.html#inputs
Saludos.
Digamos que tengo el siguiente analizador dentro de mi método get:
from flask.ext.restful import reqparse
parser = reqparse.RequestParser()
parser.add_argument(''when'', type=datetime, help=''Input wasn/'t valid!'')
Y luego quiero probar el dicho método get con curl ...
curl --data "when=[WHAT SHOULD I WRITE HERE?]" localhost:5000/myGet
Entonces la pregunta es, ¿cómo debería llamar al método get? Probé numerosos formatos diferentes, intenté leer el estándar rfc228, etc. pero no puedo entender el formato correcto.