11import functools
22
33from flask import (
4- Blueprint , flash , g , redirect , render_template , request , session , url_for
4+ Blueprint ,
5+ flash ,
6+ g ,
7+ redirect ,
8+ render_template ,
9+ request ,
10+ session ,
11+ url_for ,
512)
613from werkzeug .security import check_password_hash , generate_password_hash
714
815from flaskr .db import get_db
916
10- bp = Blueprint (' auth' , __name__ , url_prefix = ' /auth' )
17+ bp = Blueprint (" auth" , __name__ , url_prefix = " /auth" )
1118
1219
1320def login_required (view ):
1421 """View decorator that redirects anonymous users to the login page."""
22+
1523 @functools .wraps (view )
1624 def wrapped_view (** kwargs ):
1725 if g .user is None :
18- return redirect (url_for (' auth.login' ))
26+ return redirect (url_for (" auth.login" ))
1927
2028 return view (** kwargs )
2129
@@ -26,83 +34,84 @@ def wrapped_view(**kwargs):
2634def load_logged_in_user ():
2735 """If a user id is stored in the session, load the user object from
2836 the database into ``g.user``."""
29- user_id = session .get (' user_id' )
37+ user_id = session .get (" user_id" )
3038
3139 if user_id is None :
3240 g .user = None
3341 else :
34- g .user = get_db (). execute (
35- ' SELECT * FROM user WHERE id = ?' , (user_id ,)
36- ). fetchone ()
42+ g .user = (
43+ get_db (). execute ( " SELECT * FROM user WHERE id = ?" , (user_id ,)). fetchone ( )
44+ )
3745
3846
39- @bp .route (' /register' , methods = (' GET' , ' POST' ))
47+ @bp .route (" /register" , methods = (" GET" , " POST" ))
4048def register ():
4149 """Register a new user.
4250
4351 Validates that the username is not already taken. Hashes the
4452 password for security.
4553 """
46- if request .method == ' POST' :
47- username = request .form [' username' ]
48- password = request .form [' password' ]
54+ if request .method == " POST" :
55+ username = request .form [" username" ]
56+ password = request .form [" password" ]
4957 db = get_db ()
5058 error = None
5159
5260 if not username :
53- error = ' Username is required.'
61+ error = " Username is required."
5462 elif not password :
55- error = 'Password is required.'
56- elif db .execute (
57- 'SELECT id FROM user WHERE username = ?' , (username ,)
58- ).fetchone () is not None :
59- error = 'User {0} is already registered.' .format (username )
63+ error = "Password is required."
64+ elif (
65+ db .execute ("SELECT id FROM user WHERE username = ?" , (username ,)).fetchone ()
66+ is not None
67+ ):
68+ error = "User {0} is already registered." .format (username )
6069
6170 if error is None :
6271 # the name is available, store it in the database and go to
6372 # the login page
6473 db .execute (
65- ' INSERT INTO user (username, password) VALUES (?, ?)' ,
66- (username , generate_password_hash (password ))
74+ " INSERT INTO user (username, password) VALUES (?, ?)" ,
75+ (username , generate_password_hash (password )),
6776 )
6877 db .commit ()
69- return redirect (url_for (' auth.login' ))
78+ return redirect (url_for (" auth.login" ))
7079
7180 flash (error )
7281
73- return render_template (' auth/register.html' )
82+ return render_template (" auth/register.html" )
7483
7584
76- @bp .route (' /login' , methods = (' GET' , ' POST' ))
85+ @bp .route (" /login" , methods = (" GET" , " POST" ))
7786def login ():
7887 """Log in a registered user by adding the user id to the session."""
79- if request .method == ' POST' :
80- username = request .form [' username' ]
81- password = request .form [' password' ]
88+ if request .method == " POST" :
89+ username = request .form [" username" ]
90+ password = request .form [" password" ]
8291 db = get_db ()
8392 error = None
8493 user = db .execute (
85- ' SELECT * FROM user WHERE username = ?' , (username ,)
94+ " SELECT * FROM user WHERE username = ?" , (username ,)
8695 ).fetchone ()
8796
8897 if user is None :
89- error = ' Incorrect username.'
90- elif not check_password_hash (user [' password' ], password ):
91- error = ' Incorrect password.'
98+ error = " Incorrect username."
99+ elif not check_password_hash (user [" password" ], password ):
100+ error = " Incorrect password."
92101
93102 if error is None :
94103 # store the user id in a new session and return to the index
95104 session .clear ()
96- session [' user_id' ] = user ['id' ]
97- return redirect (url_for (' index' ))
105+ session [" user_id" ] = user ["id" ]
106+ return redirect (url_for (" index" ))
98107
99108 flash (error )
100109
101- return render_template (' auth/login.html' )
110+ return render_template (" auth/login.html" )
102111
103112
104- @bp .route (' /logout' )
113+ @bp .route (" /logout" )
105114def logout ():
106115 """Clear the current session, including the stored user id."""
107116 session .clear ()
108- return redirect (url_for (' index' ))
117+ return redirect (url_for (" index" ))
0 commit comments