Skip to content

Commit ee9c797

Browse files
committed
Minor cleanup.
1 parent bbbe7e1 commit ee9c797

File tree

16 files changed

+900
-192
lines changed

16 files changed

+900
-192
lines changed

Makefile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ $(VIRTUAL_ENV):
3636

3737
.PHONY: run
3838
run: env
39-
export LESS_BIN=$(shell which lessc)
39+
export LESS_BIN=$(shell which lessc) && \
4040
uwsgi --http 127.0.0.1:8082 --master --module wsgi:app --processes 4 --threads 2
4141

4242

@@ -75,7 +75,7 @@ update: env
7575

7676
.PHONY: format
7777
format: env
78-
$(LOCAL_PYTHON) -m isort --multi-line=3 .
78+
$(LOCAL_PYTHON) -m isort --multi-line=3 . && \
7979
$(LOCAL_PYTHON) -m black .
8080

8181

README.md

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,20 +3,16 @@
33
![Python](https://img.shields.io/badge/Python-v^3.9-blue.svg?logo=python&longCache=true&logoColor=white&colorB=5e81ac&style=flat-square&colorA=4c566a)
44
![Flask](https://img.shields.io/badge/Flask-v^2.2.2-blue.svg?longCache=true&logo=flask&style=flat-square&logoColor=white&colorB=5e81ac&colorA=4c566a)
55
![Flask-Login](https://img.shields.io/badge/Flask--Login-v0.6.2-blue.svg?longCache=true&logo=flask&style=flat-square&logoColor=white&colorB=5e81ac&colorA=4c566a)
6-
![Flask-Assets](https://img.shields.io/badge/Flask--Assets-v2.0-blue.svg?longCache=true&logo=flask&style=flat-square&logoColor=white&colorB=5e81ac&colorA=4c566a)
76
![Flask-Session](https://img.shields.io/badge/Flask--Session-v0.4.0-blue.svg?longCache=true&logo=flask&style=flat-square&logoColor=white&colorB=5e81ac&colorA=4c566a)
8-
![Flask-SQLAlchemy](https://img.shields.io/badge/Flask--SQLAlchemy-v2.5.1-red.svg?longCache=true&style=flat-square&logo=flask&logoColor=white&colorA=4c566a&colorB=5e81ac)
9-
![WTForms](https://img.shields.io/badge/WTForms-v2.2.1-blue.svg?longCache=true&logo=python&style=flat-square&logoColor=white&colorB=5e81ac&colorA=4c566a)
10-
![PyMySQL](https://img.shields.io/badge/PyMySQL-v1.0.2-red.svg?longCache=true&style=flat-square&logo=scala&logoColor=white&colorA=4c566a&colorB=bf616a)
11-
![Redis](https://img.shields.io/badge/Redis-v4.2.2-red.svg?longCache=true&style=flat-square&logo=redis&logoColor=white&colorA=4c566a&colorB=bf616a)
7+
![Redis](https://img.shields.io/badge/Redis-v4.4.2-red.svg?longCache=true&style=flat-square&logo=redis&logoColor=white&colorA=4c566a&colorB=bf616a)
128
![GitHub Last Commit](https://img.shields.io/github/last-commit/google/skia.svg?style=flat-square&colorA=4c566a&colorB=a3be8c&logo=GitHub)
139
[![GitHub Issues](https://img.shields.io/github/issues/hackersandslackers/flask-session-tutorial.svg?style=flat-square&colorA=4c566a&logo=GitHub&colorB=ebcb8b)](https://github.com/hackersandslackers/flask-session-tutorial/issues)
1410
[![GitHub Stars](https://img.shields.io/github/stars/hackersandslackers/flask-session-tutorial.svg?style=flat-square&colorA=4c566a&logo=GitHub&colorB=ebcb8b)](https://github.com/hackersandslackers/flask-session-tutorial/stargazers)
1511
[![GitHub Forks](https://img.shields.io/github/forks/hackersandslackers/flask-session-tutorial.svg?style=flat-square&colorA=4c566a&logo=GitHub&colorB=ebcb8b)](https://github.com/hackersandslackers/flask-session-tutorial/network)
1612

1713
![Flask Session Redis Tutorial](https://github.com/hackersandslackers/flask-session-tutorial/blob/master/.github/flask-session2@2x.jpg?raw=true)
1814

19-
**Tutorial**: https://hackersandslackers.com/managing-user-session-variables-with-flask-sessions-and-redis/
15+
**Tutorial**: [https://hackersandslackers.com/managing-user-session-variables-with-flask-sessions-and-redis/](https://hackersandslackers.com/managing-user-session-variables-with-flask-sessions-and-redis/)
2016

2117
## Getting Started
2218

config.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ class Config:
1818
SECRET_KEY = environ.get("SECRET_KEY")
1919

2020
# Flask-Session
21-
REDIS_URI = environ.get("SESSION_REDIS")
21+
REDIS_URI = environ.get("REDIS_URI")
2222
SESSION_TYPE = "redis"
2323
SESSION_REDIS = redis.from_url(REDIS_URI)
2424

flask_session_tutorial/__init__.py

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,9 @@
44
from flask_session import Session
55
from flask_sqlalchemy import SQLAlchemy
66

7-
87
db = SQLAlchemy()
98
login_manager = LoginManager()
10-
sess = Session()
9+
session = Session()
1110

1211

1312
def create_app():
@@ -18,15 +17,14 @@ def create_app():
1817
# Initialize Plugins
1918
db.init_app(app)
2019
login_manager.init_app(app)
21-
sess.init_app(app)
20+
session.init_app(app)
2221

2322
with app.app_context():
24-
from . import routes
25-
from . import auth
26-
from .assets import compile_static_assets, compile_auth_assets
23+
from . import auth, routes
24+
from .assets import compile_auth_assets, compile_static_assets
2725

28-
app.register_blueprint(routes.main_bp)
29-
app.register_blueprint(auth.auth_bp)
26+
app.register_blueprint(routes.main)
27+
app.register_blueprint(auth.auth)
3028

3129
# Create static asset bundles
3230
compile_static_assets(app)

flask_session_tutorial/assets.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44

55
def compile_auth_assets(app):
6-
"""Configure authorization asset bundles."""
6+
"""Generate static assets for the auth views."""
77
assets = Environment(app)
88
Environment.auto_build = True
99
Environment.debug = False
@@ -26,7 +26,7 @@ def compile_auth_assets(app):
2626

2727

2828
def compile_main_assets(app):
29-
"""Configure logged-in asset bundles."""
29+
"""Generate static assets for main views."""
3030
assets = Environment(app)
3131
Environment.auto_build = True
3232
Environment.debug = False

flask_session_tutorial/auth.py

Lines changed: 14 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,16 @@
11
"""Routes for user authentication."""
2-
from flask import Blueprint
3-
from flask import current_app as app
4-
from flask import flash, redirect, render_template, request, url_for
2+
from flask import Blueprint, flash, redirect, render_template, request, url_for
53
from flask_login import current_user, login_user
64

7-
from . import login_manager
8-
from .assets import compile_auth_assets
9-
from .forms import LoginForm, SignupForm
10-
from .models import User, db
5+
from flask_session_tutorial import login_manager
6+
from flask_session_tutorial.forms import LoginForm, SignupForm
7+
from flask_session_tutorial.models import User, db
118

129
# Blueprint Configuration
13-
auth_bp = Blueprint(
14-
"auth_bp", __name__, template_folder="templates", static_folder="static"
15-
)
10+
auth = Blueprint("auth", __name__, template_folder="templates", static_folder="static")
1611

1712

18-
@auth_bp.route("/signup", methods=["GET", "POST"])
13+
@auth.route("/signup", methods=["GET", "POST"])
1914
def signup():
2015
"""
2116
Sign-up form to create new user accounts.
@@ -26,15 +21,13 @@ def signup():
2621
if form.validate_on_submit():
2722
existing_user = User.query.filter_by(email=form.email.data).first()
2823
if existing_user is None:
29-
user = User(
30-
name=form.name.data, email=form.email.data, website=form.website.data
31-
)
24+
user = User(name=form.name.data, email=form.email.data, website=form.website.data)
3225
user.set_password(form.password.data)
3326
db.session.add(user)
3427
db.session.commit() # Create new user
3528
login_user(user) # Log in as newly created user
3629
print(user)
37-
return redirect(url_for("main_bp.dashboard"))
30+
return redirect(url_for("main.dashboard"))
3831
flash("A user already exists with that email address.")
3932
return render_template(
4033
"signup.jinja2",
@@ -45,27 +38,25 @@ def signup():
4538
)
4639

4740

48-
@auth_bp.route("/login", methods=["GET", "POST"])
41+
@auth.route("/login", methods=["GET", "POST"])
4942
def login():
5043
"""
5144
Log-in page for registered users.
5245
GET: Serve Log-in page.
5346
POST: Validate form and redirect user to dashboard.
5447
"""
5548
if current_user.is_authenticated:
56-
return redirect(url_for("main_bp.dashboard")) # Bypass if user is logged in
49+
return redirect(url_for("main.dashboard")) # Bypass if user is logged in
5750

5851
form = LoginForm()
5952
if form.validate_on_submit():
60-
user = User.query.filter_by(
61-
email=form.email.data
62-
).first() # Validate Login Attempt
53+
user = User.query.filter_by(email=form.email.data).first() # Validate Login Attempt
6354
if user and user.check_password(password=form.password.data):
6455
login_user(user)
6556
next_page = request.args.get("next")
66-
return redirect(next_page or url_for("main_bp.dashboard"))
57+
return redirect(next_page or url_for("main.dashboard"))
6758
flash("Invalid username/password combination")
68-
return redirect(url_for("auth_bp.login"))
59+
return redirect(url_for("auth.login"))
6960
return render_template(
7061
"login.jinja2",
7162
form=form,
@@ -87,4 +78,4 @@ def load_user(user_id):
8778
def unauthorized():
8879
"""Redirect unauthorized users to Login page."""
8980
flash("You must be logged in to view that page.")
90-
return redirect(url_for("auth_bp.login"))
81+
return redirect(url_for("auth.login"))

flask_session_tutorial/forms.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,6 @@ class SignupForm(FlaskForm):
3737
class LoginForm(FlaskForm):
3838
"""User Log-in Form."""
3939

40-
email = StringField(
41-
"Email", validators=[DataRequired(), Email(message="Enter a valid email.")]
42-
)
40+
email = StringField("Email", validators=[DataRequired(), Email(message="Enter a valid email.")])
4341
password = PasswordField("Password", validators=[DataRequired()])
4442
submit = SubmitField("Log In")

flask_session_tutorial/models.py

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
from flask_login import UserMixin
33
from werkzeug.security import check_password_hash, generate_password_hash
44

5-
from . import db
5+
from flask_session_tutorial import db
66

77

88
class User(UserMixin, db.Model):
@@ -12,9 +12,7 @@ class User(UserMixin, db.Model):
1212
id = db.Column(db.Integer, primary_key=True)
1313
name = db.Column(db.String(200), nullable=False, unique=False)
1414
email = db.Column(db.String(40), unique=True, nullable=False)
15-
password = db.Column(
16-
db.String(200), primary_key=False, unique=False, nullable=False
17-
)
15+
password = db.Column(db.String(200), primary_key=False, unique=False, nullable=False)
1816
website = db.Column(db.String(60), index=False, unique=False, nullable=True)
1917
created_on = db.Column(db.DateTime, index=False, unique=False, nullable=True)
2018
last_login = db.Column(db.DateTime, index=False, unique=False, nullable=True)

flask_session_tutorial/routes.py

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,10 @@
77
from .assets import compile_auth_assets
88

99
# Blueprint Configuration
10-
main_bp = Blueprint(
11-
"main_bp", __name__, template_folder="templates", static_folder="static"
12-
)
10+
main = Blueprint("main", __name__, template_folder="templates", static_folder="static")
1311

1412

15-
@main_bp.route("/", methods=["GET"])
13+
@main.route("/", methods=["GET"])
1614
@login_required
1715
def dashboard():
1816
"""Logged in Dashboard screen."""
@@ -26,7 +24,7 @@ def dashboard():
2624
)
2725

2826

29-
@main_bp.route("/session", methods=["GET"])
27+
@main.route("/session", methods=["GET"])
3028
@login_required
3129
def session_view():
3230
"""Display session variable value."""
@@ -38,9 +36,9 @@ def session_view():
3836
)
3937

4038

41-
@main_bp.route("/logout")
39+
@main.route("/logout")
4240
@login_required
4341
def logout():
4442
"""User log-out logic."""
4543
logout_user()
46-
return redirect(url_for("auth_bp.login"))
44+
return redirect(url_for("auth.login"))

flask_session_tutorial/templates/dashboard.jinja2

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
{% block nav %}
99
<nav style="position:absolute; top:20px; right:20px;">
10-
<a href="{{ url_for('main_bp.session_view') }}" style="color:white">Session test</a>
10+
<a href="{{ url_for('main.session_view') }}" style="color:white">Session test</a>
1111
</nav>
1212
{% endblock %}
1313

@@ -16,6 +16,6 @@
1616

1717
{% if current_user.is_authenticated %}
1818
<p>Hi {{ current_user.name }}!</p>
19-
<a href="{{ url_for('main_bp.logout') }}">Log out</a>
19+
<a href="{{ url_for('main.logout') }}">Log out</a>
2020
{% endif %}
2121
{% endblock %}

0 commit comments

Comments
 (0)