¿Necesito pasar las variables de sesión manualmente desde Flask a mi HTML o se envían automáticamente de alguna manera?
Puedo
return render_template('index.html') y acceder a una variable de sesión nombre de username , por ejemplo, como {{session['username'}} en el archivo HTML?
en pitón
session['username'] = 'username'en jinja2 puedes ir
{{session['username']}}Si desea aislar ciertas partes de su HTML usando la sesión, puede llamar a la sesión directamente en esos elementos:
{% if session['username'] %} <li>Logout</li> {% endif %}@ bpb101 es correcto en el formato Jinja2 (aunque omitió los espacios como han mencionado otros). En la plantilla HTML/Jinja2, simplemente puede llamar al diccionario de la session sin pasarlo a la plantilla:
{{ session['username'] }} Sin embargo, el otro ejemplo, en el código de Python, en realidad sobrescribiría el valor de session['username'] con la cadena 'username' , debido a la asignación de variables. Si estuviera tratando de establecer una variable en el valor de la session['username'] , usaría:
username = session['username']De lo contrario, si solo necesita probar o usar el valor por alguna otra razón, puede acceder a él directamente, por ejemplo:
if session['username'] == some_value: return "The username is", session['username']Con suerte, eso ayudará a cualquier persona nueva en Flask o Jinja2 que se pregunte por qué se sobrescriben sus variables de sesión.