Mercurial > kraina_muminkow
annotate frontend/mfrontend/views/frontend.py @ 29:28eb82047167
Ukończona strona klienta
author | mild@mild-laptop |
---|---|
date | Sun, 05 Jun 2011 23:09:18 +0200 |
parents | c87f82a15606 |
children |
rev | line source |
---|---|
3
79fc37fe85a6
Zabawy z Flaskiem ciąg dalszy, zaczyna to jakoś wyglądać
michalr
parents:
1
diff
changeset
|
1 #!/usr/bin/python |
79fc37fe85a6
Zabawy z Flaskiem ciąg dalszy, zaczyna to jakoś wyglądać
michalr
parents:
1
diff
changeset
|
2 # -*- coding: utf-8 -*- |
79fc37fe85a6
Zabawy z Flaskiem ciąg dalszy, zaczyna to jakoś wyglądać
michalr
parents:
1
diff
changeset
|
3 |
5
3ba60dfc1d64
Dodałem prosty instalator aplikacji tworzący bazę danych ze schematu
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
4
diff
changeset
|
4 from flask import Module, render_template, request, url_for |
10
58a993029d9f
Dodawanie nowych zadań i dekorator sprawdzający zalogowanie.
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
7
diff
changeset
|
5 from flask import escape, session, redirect, flash, abort, g |
6
27d63cac76ac
Konta użytkowników muszą być aktywowane + ładniejsze wyświetlanie błędów przy logowaniu
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
5
diff
changeset
|
6 from mfrontend import db, utils, exceptions |
1 | 7 frontend = Module(__name__) |
8 | |
9 @frontend.route('/') | |
10 def index(): | |
16
c87f82a15606
Dopisałem co nieco do dokumentacji i małę poprawki w zarządzainu zadaniami
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
10
diff
changeset
|
11 """ Funkcja wyświetlająca stronę główną aplikacji. |
c87f82a15606
Dopisałem co nieco do dokumentacji i małę poprawki w zarządzainu zadaniami
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
10
diff
changeset
|
12 """ |
4 | 13 return render_template('hello.html') |
3
79fc37fe85a6
Zabawy z Flaskiem ciąg dalszy, zaczyna to jakoś wyglądać
michalr
parents:
1
diff
changeset
|
14 |
6
27d63cac76ac
Konta użytkowników muszą być aktywowane + ładniejsze wyświetlanie błędów przy logowaniu
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
5
diff
changeset
|
15 @frontend.route('/install/') |
5
3ba60dfc1d64
Dodałem prosty instalator aplikacji tworzący bazę danych ze schematu
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
4
diff
changeset
|
16 def install(): |
3ba60dfc1d64
Dodałem prosty instalator aplikacji tworzący bazę danych ze schematu
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
4
diff
changeset
|
17 """Instaluje aplikację, tworząc pustą bazę danych |
3ba60dfc1d64
Dodałem prosty instalator aplikacji tworzący bazę danych ze schematu
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
4
diff
changeset
|
18 według schematu. |
3ba60dfc1d64
Dodałem prosty instalator aplikacji tworzący bazę danych ze schematu
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
4
diff
changeset
|
19 """ |
3ba60dfc1d64
Dodałem prosty instalator aplikacji tworzący bazę danych ze schematu
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
4
diff
changeset
|
20 if db.init_db(): |
3ba60dfc1d64
Dodałem prosty instalator aplikacji tworzący bazę danych ze schematu
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
4
diff
changeset
|
21 return render_template('install_ok.html') |
3ba60dfc1d64
Dodałem prosty instalator aplikacji tworzący bazę danych ze schematu
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
4
diff
changeset
|
22 else: |
3ba60dfc1d64
Dodałem prosty instalator aplikacji tworzący bazę danych ze schematu
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
4
diff
changeset
|
23 abort(404) |
3ba60dfc1d64
Dodałem prosty instalator aplikacji tworzący bazę danych ze schematu
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
4
diff
changeset
|
24 |
6
27d63cac76ac
Konta użytkowników muszą być aktywowane + ładniejsze wyświetlanie błędów przy logowaniu
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
5
diff
changeset
|
25 @frontend.route('/login/', methods=['GET', 'POST']) |
3
79fc37fe85a6
Zabawy z Flaskiem ciąg dalszy, zaczyna to jakoś wyglądać
michalr
parents:
1
diff
changeset
|
26 def login(): |
16
c87f82a15606
Dopisałem co nieco do dokumentacji i małę poprawki w zarządzainu zadaniami
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
10
diff
changeset
|
27 """ Funkcja logująca użytkownika w wypadku, gdy za pomocą |
c87f82a15606
Dopisałem co nieco do dokumentacji i małę poprawki w zarządzainu zadaniami
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
10
diff
changeset
|
28 metody POST zostały wysłane dane do logowania, a w |
c87f82a15606
Dopisałem co nieco do dokumentacji i małę poprawki w zarządzainu zadaniami
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
10
diff
changeset
|
29 przeciwnym wypadku wyświetlająca formularz logowania. |
c87f82a15606
Dopisałem co nieco do dokumentacji i małę poprawki w zarządzainu zadaniami
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
10
diff
changeset
|
30 """ |
3
79fc37fe85a6
Zabawy z Flaskiem ciąg dalszy, zaczyna to jakoś wyglądać
michalr
parents:
1
diff
changeset
|
31 if request.method == 'POST': |
6
27d63cac76ac
Konta użytkowników muszą być aktywowane + ładniejsze wyświetlanie błędów przy logowaniu
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
5
diff
changeset
|
32 try: |
27d63cac76ac
Konta użytkowników muszą być aktywowane + ładniejsze wyświetlanie błędów przy logowaniu
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
5
diff
changeset
|
33 if db.user_can_login(request.form['username'], |
27d63cac76ac
Konta użytkowników muszą być aktywowane + ładniejsze wyświetlanie błędów przy logowaniu
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
5
diff
changeset
|
34 request.form['password']) : |
10
58a993029d9f
Dodawanie nowych zadań i dekorator sprawdzający zalogowanie.
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
7
diff
changeset
|
35 session['user_id'] = db.get_user_id(request.form['username']) |
58a993029d9f
Dodawanie nowych zadań i dekorator sprawdzający zalogowanie.
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
7
diff
changeset
|
36 session['user_name'] = request.form['username'] |
6
27d63cac76ac
Konta użytkowników muszą być aktywowane + ładniejsze wyświetlanie błędów przy logowaniu
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
5
diff
changeset
|
37 session['logged_in'] = True |
7
d86794939fe4
Rejestracja użytkowników
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
6
diff
changeset
|
38 flash(u'Zalogowano') |
6
27d63cac76ac
Konta użytkowników muszą być aktywowane + ładniejsze wyświetlanie błędów przy logowaniu
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
5
diff
changeset
|
39 return redirect(url_for('index')) |
27d63cac76ac
Konta użytkowników muszą być aktywowane + ładniejsze wyświetlanie błędów przy logowaniu
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
5
diff
changeset
|
40 else: |
27d63cac76ac
Konta użytkowników muszą być aktywowane + ładniejsze wyświetlanie błędów przy logowaniu
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
5
diff
changeset
|
41 raise exceptions.BadPasswordOrUsername() |
27d63cac76ac
Konta użytkowników muszą być aktywowane + ładniejsze wyświetlanie błędów przy logowaniu
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
5
diff
changeset
|
42 except (exceptions.UserNotActivated, |
27d63cac76ac
Konta użytkowników muszą być aktywowane + ładniejsze wyświetlanie błędów przy logowaniu
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
5
diff
changeset
|
43 exceptions.BadPasswordOrUsername) as e: |
27d63cac76ac
Konta użytkowników muszą być aktywowane + ładniejsze wyświetlanie błędów przy logowaniu
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
5
diff
changeset
|
44 flash(e) |
4 | 45 return redirect(url_for('index')) |
3
79fc37fe85a6
Zabawy z Flaskiem ciąg dalszy, zaczyna to jakoś wyglądać
michalr
parents:
1
diff
changeset
|
46 return render_template('login.html') |
79fc37fe85a6
Zabawy z Flaskiem ciąg dalszy, zaczyna to jakoś wyglądać
michalr
parents:
1
diff
changeset
|
47 |
6
27d63cac76ac
Konta użytkowników muszą być aktywowane + ładniejsze wyświetlanie błędów przy logowaniu
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
5
diff
changeset
|
48 @frontend.route('/logout/') |
4 | 49 def logout(): |
50 """Funkcja powoduje wyczyszczenie sesji użytkownika, | |
51 a w efekcie wylogowanie z systemu. | |
52 """ | |
53 session.clear() | |
10
58a993029d9f
Dodawanie nowych zadań i dekorator sprawdzający zalogowanie.
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
7
diff
changeset
|
54 g.user = None |
4 | 55 flash('Wylogowano') |
56 return redirect(url_for('index')) | |
7
d86794939fe4
Rejestracja użytkowników
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
6
diff
changeset
|
57 |
d86794939fe4
Rejestracja użytkowników
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
6
diff
changeset
|
58 @frontend.route('/register/', methods=['GET', 'POST']) |
d86794939fe4
Rejestracja użytkowników
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
6
diff
changeset
|
59 def register(): |
d86794939fe4
Rejestracja użytkowników
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
6
diff
changeset
|
60 """Funkcja do rejestrowania użytkowników.""" |
d86794939fe4
Rejestracja użytkowników
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
6
diff
changeset
|
61 if request.method == 'POST': |
d86794939fe4
Rejestracja użytkowników
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
6
diff
changeset
|
62 try: |
d86794939fe4
Rejestracja użytkowników
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
6
diff
changeset
|
63 db.register_user(request.form['username'], |
d86794939fe4
Rejestracja użytkowników
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
6
diff
changeset
|
64 request.form['password']) |
d86794939fe4
Rejestracja użytkowników
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
6
diff
changeset
|
65 flash(u'Konto założone, poczekaj na akceptację administratora.') |
d86794939fe4
Rejestracja użytkowników
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
6
diff
changeset
|
66 return redirect(url_for('index')) |
d86794939fe4
Rejestracja użytkowników
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
6
diff
changeset
|
67 except exceptions.UserExists as e: |
d86794939fe4
Rejestracja użytkowników
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
6
diff
changeset
|
68 flash(e) |
d86794939fe4
Rejestracja użytkowników
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
6
diff
changeset
|
69 return redirect(url_for('register')) |
d86794939fe4
Rejestracja użytkowników
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
6
diff
changeset
|
70 return render_template('register.html') |
d86794939fe4
Rejestracja użytkowników
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
6
diff
changeset
|
71 |