summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
authorblendoit <blendoit@gmail.com>2020-01-25 11:47:18 -0800
committerblendoit <blendoit@gmail.com>2020-01-25 11:47:18 -0800
commitfd1f3fba182efb1ff154dc24f2553601b28791fb (patch)
tree956cf6c249cbca046f7d15c3d6acd5f73801704a /app
parent513452520bc419bed16ff3a763a99e8a6cd2ebcc (diff)
Python module documentation and start work on SQL db.
Diffstat (limited to 'app')
-rw-r--r--app/routes.py34
1 files changed, 34 insertions, 0 deletions
diff --git a/app/routes.py b/app/routes.py
index 4604827..6c7059a 100644
--- a/app/routes.py
+++ b/app/routes.py
@@ -1,33 +1,60 @@
+"""
+routes.py module
+----------------
+
+This Python module contains the logic supporting:
+1. Navigating between website pages
+2. Interpreting user requests to the server
+3. Dispatching requested content back to the user
+
+Python dependencies:
+- flask: provides web application features
+- forms: provides secure form user submission
+- sqlalchemy: provides communication with database on server.
+
+Personal imports:
+These are used to avoid cluttering this file with
+placeholder data for posts' content.
+"""
from flask import Flask, render_template, flash, redirect, url_for
from forms import RegistrationForm, LoginForm
+from flask_sqlalchemy import SQLAlchemy
+
from placeholder_posts import posts
from placeholder_news import news
from placeholder_messages import messages
app = Flask(__name__)
app.config['SECRET_KEY'] = 'foobarblendoitfoobar!'
+app.config['SQLALCHEMY_DATABASE_URI'] = 'mariadb:///site.db'
+
+db = SQLAlchemy(app)
@app.route("/")
@app.route("/home")
def home():
+ """This is our homepage."""
home_posts = posts + news + messages
return render_template('home.html', posts=home_posts)
@app.route("/yes")
def yes():
+ """Another page, presenting the user with content marked as 'yes'."""
return render_template("yes.html", messages=messages, news=news)
@app.route("/no")
def no():
+ """This page contains an archive of 'no's, for forgiving user mistakes."""
archives = posts + news + messages
return render_template("no.html", archive=archives)
@app.route("/register", methods=['GET', 'POST'])
def register():
+ """Account registration page leveraging the form Python package."""
form = RegistrationForm()
if form.validate_on_submit():
flash(f"Alias created for {form.alias.data}.", 'success')
@@ -41,5 +68,12 @@ def login():
return render_template('login.html', title="Login", form=form)
+# If this file is executed as a script (i.e. double-clicked),
+# the Python interpreter will run the Flask process and begin serving
+# the web pages on the standard localhost address (127.0.0.1).
+# But if this file is called as a module by another Python script, it will not
+# serve content to the web pages, but the function definitions contained in
+# this file will be available to the calling script.
+# E.g. calling script will know what the yes() function is.
if __name__ == '__main__':
app.run(debug=True)
Copyright 2019--2024 Marius PETER