Skip to content

Commit a113441

Browse files
committed
Added Makefile.
1 parent 69852d6 commit a113441

File tree

15 files changed

+320
-95
lines changed

15 files changed

+320
-95
lines changed

Makefile

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
SRCPATH := $(CURDIR)
2+
PROJECTNAME := $(shell basename $(CURDIR))
3+
4+
define HELP
5+
Manage $(PROJECTNAME). Usage:
6+
7+
make run - Run $(PROJECTNAME).
8+
make deploy - Install requirements and run app for the first time.
9+
make update - Update pip dependencies via Python Poetry.
10+
make format - Format code with Python's `Black` library.
11+
make clean - Remove cached files and lock files.
12+
endef
13+
export HELP
14+
15+
.PHONY: run restart deploy update clean help
16+
17+
18+
requirements: .requirements.txt
19+
20+
21+
.requirements.txt: requirements.txt
22+
$(shell . .venv/bin/activate && pip install -r requirements.txt)
23+
24+
25+
all help:
26+
@echo "$$HELP"
27+
28+
29+
.PHONY: run
30+
run:
31+
$(shell . .venv/bin/activate && python3 wsgi.py)
32+
33+
34+
.PHONY: deploy
35+
deploy:
36+
$(shell . ./deploy.sh)
37+
38+
39+
.PHONY: update
40+
update:
41+
poetry shell && poetry update
42+
pip freeze > requirements.txt
43+
exit
44+
45+
46+
.PHONY: format
47+
format: requirements
48+
$(shell . .venv/bin/activate)
49+
$(shell isort -rc ./)
50+
$(shell black ./)
51+
52+
53+
.PHONY: clean
54+
clean:
55+
find . -name '*.pyc' -delete
56+
find . -name '__pycache__' -delete
57+
find . -name 'poetry.lock' -delete
58+
find . -name 'Pipefile.lock' -delete

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
![Flask](https://img.shields.io/badge/Flask-v^1.1.1-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.5.0-blue.svg?longCache=true&logo=flask&style=flat-square&logoColor=white&colorB=5e81ac&colorA=4c566a)
66
![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)
7-
![Flask-Session](https://img.shields.io/badge/Flask--Session-v0.3.1-blue.svg?longCache=true&logo=flask&style=flat-square&logoColor=white&colorB=5e81ac&colorA=4c566a)
7+
![Flask-Session](https://img.shields.io/badge/Flask--Session-v0.3.2-blue.svg?longCache=true&logo=flask&style=flat-square&logoColor=white&colorB=5e81ac&colorA=4c566a)
88
![Flask-SQLAlchemy](https://img.shields.io/badge/Flask--SQLAlchemy-v2.3.2-red.svg?longCache=true&style=flat-square&logo=flask&logoColor=white&colorA=4c566a&colorB=5e81ac)
99
![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)
1010
![PyMySQL](https://img.shields.io/badge/PyMySQL-v0.9.3-red.svg?longCache=true&style=flat-square&logo=scala&logoColor=white&colorA=4c566a&colorB=bf616a)

config.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
"""App configuration."""
22
from os import environ, path
3-
from dotenv import load_dotenv
3+
44
import redis
5+
from dotenv import load_dotenv
56

67
basedir = path.abspath(path.dirname(__file__))
78
load_dotenv(path.join(basedir, '.env'))

deploy.sh

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
#!/bin/bash
2+
3+
if [ -d ".venv" ]
4+
then
5+
source .venv/bin/activate
6+
pip install -r requirements.txt
7+
python3 wsgi.py
8+
else
9+
python3 -m venv .venv
10+
source .venv/bin/activate
11+
python3 -m pip install --upgrade pip
12+
pip install -r requirements.txt
13+
python3 wsgi.py
14+
fi

flask_session_tutorial/__init__.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
11
"""Initialize app."""
22
from flask import Flask
3-
from flask_sqlalchemy import SQLAlchemy
43
from flask_login import LoginManager
54
from flask_session import Session
6-
5+
from flask_sqlalchemy import SQLAlchemy
76

87
db = SQLAlchemy()
98
login_manager = LoginManager()

flask_session_tutorial/assets.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
"""Compile static asset bundles."""
2-
from flask_assets import Environment, Bundle
2+
from flask_assets import Bundle, Environment
33

44

55
def compile_auth_assets(app):
@@ -24,7 +24,7 @@ def compile_auth_assets(app):
2424
assets.register('less_all', less_bundle)
2525
assets.register('js_all', js_bundle)
2626
# Build assets in development mode
27-
if app.config['FLASK_ENV'] == 'development':
27+
if app.config['FLASK_ENV'] != 'production':
2828
less_bundle.build(force=True)
2929
js_bundle.build()
3030

@@ -44,7 +44,7 @@ def compile_main_assets(app):
4444
# Register assets
4545
assets.register('less_all', less_bundle)
4646
# Build assets in development mode
47-
if app.config['FLASK_ENV'] == 'development':
47+
if app.config['FLASK_ENV'] != 'production':
4848
less_bundle.build(force=True)
4949

5050

flask_session_tutorial/auth.py

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
11
"""Routes for user authentication."""
2-
from flask import redirect, render_template, flash, Blueprint, request, url_for
3-
from flask_login import current_user, login_user
2+
from flask import Blueprint
43
from flask import current_app as app
4+
from flask import flash, redirect, render_template, request, url_for
5+
from flask_login import current_user, login_user
6+
7+
from . import login_manager
58
from .assets import compile_auth_assets
69
from .forms import LoginForm, SignupForm
7-
from .models import db, User
8-
from .import login_manager
9-
10+
from .models import User, db
1011

1112
# Blueprint Configuration
1213
auth_bp = Blueprint(
@@ -88,4 +89,4 @@ def load_user(user_id):
8889
def unauthorized():
8990
"""Redirect unauthorized users to Login page."""
9091
flash('You must be logged in to view that page.')
91-
return redirect(url_for('auth_bp.login'))
92+
return redirect(url_for('auth_bp.login'))

flask_session_tutorial/forms.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
"""Sign-up & log-in forms."""
22
from flask_wtf import FlaskForm
3-
from wtforms import StringField, PasswordField, SubmitField
3+
from wtforms import PasswordField, StringField, SubmitField
44
from wtforms.validators import DataRequired, Email, EqualTo, Length, Optional
55

66

@@ -48,4 +48,4 @@ class LoginForm(FlaskForm):
4848
]
4949
)
5050
password = PasswordField('Password', validators=[DataRequired()])
51-
submit = SubmitField('Log In')
51+
submit = SubmitField('Log In')

flask_session_tutorial/models.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
"""Database models."""
2-
from . import db
32
from flask_login import UserMixin
4-
from werkzeug.security import generate_password_hash, check_password_hash
3+
from werkzeug.security import check_password_hash, generate_password_hash
4+
5+
from . import db
56

67

78
class User(UserMixin, db.Model):

flask_session_tutorial/routes.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
"""Routes for logged-in flask_session_tutorial."""
2-
from flask import Blueprint, render_template, redirect, url_for, session
3-
from flask_login import current_user, logout_user
2+
from flask import Blueprint
43
from flask import current_app as app
5-
from .assets import compile_auth_assets
6-
from flask_login import login_required
4+
from flask import redirect, render_template, session, url_for
5+
from flask_login import current_user, login_required, logout_user
76

7+
from .assets import compile_auth_assets
88

99
# Blueprint Configuration
1010
main_bp = Blueprint(
@@ -44,4 +44,4 @@ def session_view():
4444
def logout():
4545
"""User log-out logic."""
4646
logout_user()
47-
return redirect(url_for('auth_bp.login'))
47+
return redirect(url_for('auth_bp.login'))

0 commit comments

Comments
 (0)