2011-06-01 15 views
10

Actualmente estoy trabajando en un proyecto que usa Flask y Google App Engine. Llamando get_flashed_messages() vuelve vacío cuando I FLASH un mensaje a continuación, utilizar un redirect():El mensaje intermitente de mensaje de error falla en las redirecciones

@views.route('/todo/add', methods=["POST"]) 
def add_todo(): 
    flash('hey') 
    return redirect(url_for('todo_list')) 

Sin embargo, si comento hacia fuera

# SERVER_NAME = 'localhost' 

entonces parece funcionar bien. Mi problema es que tengo que usar subdominios, por lo que necesito que se establezca SERVER_NAME.

¿Cuál es el trato?

Respuesta

10

lo tengo! El truco es establecer el nombre del servidor en algo con puntos.

Así que 'localhost' se convirtió en 'app.local' y app.local debe agregarse a/etc/hosts, apuntando a la misma dirección que localhost.

Desde el docs:

Por favor, tenga en cuenta que no sólo frasco tiene el problema de no saber lo que subdominios son, su navegador web también lo hace. La mayoría de los navegadores web modernos no permitirán que las cookies de subdominio cruzado se establezcan en un nombre de servidor sin puntos en él. Entonces, si su nombre de servidor es 'localhost', no podrá establecer una cookie para 'localhost' y cada subdominio de la misma. Elija un nombre de servidor diferente en ese caso, como 'myapplication.local' y añada este nombre + los subdominios que desee use en su configuración de host o configure un enlace local .

+0

Encontré que solo estaba comentando SERVER_NAME Lo tengo para trabajar. Anteriormente tenía 'SERVER_NAME = 127.0.0.1: 5000'. – Eddy

+0

Nota al margen, necesito cambiar .dev a .local en mi entorno. – anvd

3

¿configuró cookies para trabajar en todos los subdominios?

de forma predeterminada, sólo la puede leer en el dominio que las puso

+0

Gracias por su respuesta. ¿Alguna idea de cómo hacer esto? Veo que puedes llamar a set_cookie() pero realmente no sé dónde haría eso ... http://flask.pocoo.org/docs/api/#response-objects – rgbrgb

Cuestiones relacionadas