368
Rozdział 10.
Musisz pokoch sesje
Technologia sesji frameworka Flask zapewnia stan
Aby skorzystać z technologii sesji zapewnianej przez framework Flask, musisz najpierw zaimportować
element
session
należący do modułu
flask
, co jak widać dzieje się już w pierwszym wierszu
kodu aplikacji WWW zapisanej w pliku quick_session.py. O elemencie
session
możesz myśleć jako
o globalnym słowniku Pythona, w którym przechowuje się stan swojej aplikacji WWW (aczkolwiek jest
to słownik wzbogacony o pewne supermoce).
from flask import Flask, session
...
...
app = Flask(__name__)
app.secret_key = ‘NigdyNieZgadniesz’
...
Zacznij
od
zaimportowania
elementu
session.
...
@app.route(‘/setuser/<user>’)
def setuser(user: str) -> str:
session[‘user’] = user
return ‘Użytkownikiem jest: + session[‘user’]
...
Utwórz nową
aplikację
WWW
Flaska
w
standardowy sposób.
Uruchom mechanizm generowania
ciasteczek
frameworka
Flask, korzystając z tajnego
klucza.
(W
tej roli sprawdzi się dowolny łańcuch
znakowy,
jednak
podobnie jak w przypadku wszystkich
haseł, których używasz zastosowany tu
tekst
powinno
być trudno odgadnąć).
Wartość
zmiennej
user
jest
przypisywana
do
klucza
‘user’
w
słowniku
session.
URL powinien
zawierać
wartość, która ma być
przypisana do
zmiennej
user
(sposób
działania
tego
mechanizmu
poznasz już wkrótce).
Więcej informacji na temat
sesji frameworka Flask
znajdziesz pod adresem
http://flask.pocoo.org/
docs/0.11/api/#sessions.
Mimo że Twoja aplikacja nada będzie działać w bezstanowym internecie, dzięki temu importowi
będzie mogła zapamiętywać stan.
Framework Flask zapewnia, że wszelkie dane przechowywane w słowniku
session
istnieją przez cały
czas działania aplikacji (niezależnie od tego, ile razy serwer WWW będzie ładował i przeładowywał
kod aplikacji). Ponadto każda dana przechowywana w tym słowniku ma przypisany klucz utworzony
przy użyciu unikatowego ciasteczka przeglądarki, co zapewnia, że dane Twojej sesji są odizolowane
od danych wszystkich innych użytkowników aplikacji WWW.
Jak dokładnie framework Flask radzi sobie z tym wszystkim, nie jest dla nas istotne; liczy się tylko
to, że jakoś to
robi. Aby móc korzystać z tych wspaniałych możliwości, musisz uruchomić zapewniany
przez
Flaska mechanizm generowania ciasteczek, podając mu „tajny klucz”, który jest używany przez
framework do szyfrowania ciasteczek i zabezpiecza je przed wścibskim wzrokiem niepowołanych
osób. Poniżej możesz zobaczyć, jak zostało to zrobione w programie quick_session.py.
Dokumentacja
frameworka Flask sugeruje wybranie takiego tajnego klucza, który trudno będzie
odgadnąć, ale w praktyce można tu zastosować dowolny łańcuch znakowy. Flask używa tego
klucza do szyfrowania Twojego ciasteczka przed przesłaniem go do przeglądarki.
Gdy element
session
jest już zaimportowany, a tajny klucz ustawiony, możesz w swoim kodzie
skorzystać z
session
w taki sam sposób, w jaki korzystasz z dowolnego słownika w języku Python.
W programie quick_session.py URL
/setuser
(i związana z nim funkcja
setuser
) przypisuje
podaną przez użytkownika wartość do klucza
user
należącego do słownika
session
, a następnie
zwraca tę wartość do przeglądarki, tak jak zostało to pokazane poniżej.
Teraz, gdy mamy już ustawione pewne dane sesji, przyjrzyjmy się kodowi, za pomocą
którego można się do nich odwołać.

Get Python Rusz głową! Wydanie II now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.