diff --git a/README.md b/README.md index 5821404..5c10dc1 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ # Flask-Project-Template -A template to quickly standup a Flask app with Bootstrap 5, React, OIDC IAM, and a database. +A template to quickly standup a Flask app with Bootstrap 5, HTMX, OIDC IAM, and a database. # Dependencies ``` sudo apt install python3 ``` diff --git a/src/core/__builtins__.py b/src/core/__builtins__.py index 465c3fb..454eaf0 100644 --- a/src/core/__builtins__.py +++ b/src/core/__builtins__.py @@ -32,5 +32,5 @@ builtins.app_name = ':::APP TITLE:::' builtins.threaded = threaded_wrapper builtins.daemon_threaded = daemon_threaded_wrapper builtins.ROOT_FILE_PTH = os.path.dirname(os.path.realpath(__file__)) -builtins.logger = Logger().get_logger() +builtins.logger = Logger(f"{ROOT_FILE_PTH}/../logs", _ch_log_lvl=10, _fh_log_lvl=20).get_logger() builtins.json_message = MessageHandler() diff --git a/src/core/__init__.py b/src/core/__init__.py index 4ae95f1..a522218 100644 --- a/src/core/__init__.py +++ b/src/core/__init__.py @@ -44,10 +44,6 @@ app.jinja_env.globals['TITLE'] = app.config["TITLE"] from core.models import db from core.models import User -db.init_app(app) -with app.app_context(): - db.create_all() - from core.forms import RegisterForm from core.forms import LoginForm from core import routes diff --git a/src/core/models.py b/src/core/models.py index 4978349..8259f78 100644 --- a/src/core/models.py +++ b/src/core/models.py @@ -5,12 +5,14 @@ from flask_login import UserMixin from flask_sqlalchemy import SQLAlchemy # Apoplication imports -from core import app, login_manager +from core import app +from core import login_manager db = SQLAlchemy(app) + @login_manager.user_loader def load_user(user_id): return User.query.get(int(user_id)) @@ -24,3 +26,8 @@ class User(db.Model, UserMixin): def __repr__(self): return f"['{self.username}', '{self.email}', '{self.password}', '{self.id}']" + + +db.init_app(app) +with app.app_context(): + db.create_all() diff --git a/src/core/routes/__init__.py b/src/core/routes/__init__.py index 2bbe6b6..2e25d1f 100644 --- a/src/core/routes/__init__.py +++ b/src/core/routes/__init__.py @@ -8,3 +8,4 @@ from .login_controller import oidc_register from .login_controller import controller from . import routes +from . import htmx_page diff --git a/src/core/routes/htmx_page.py b/src/core/routes/htmx_page.py new file mode 100644 index 0000000..44904b1 --- /dev/null +++ b/src/core/routes/htmx_page.py @@ -0,0 +1,30 @@ +# Python imports + +# Lib imports +from flask import request +from flask import render_template +from flask_login import current_user + +# Application imports + # Get from __init__ +from core import app +from core import oidc +from core import db + + +@app.route('/htmx-page', methods=['GET', 'POST']) +def htmx_page(): + if request.method == 'GET': + return render_template('pages/htmx-page.html') + + return render_template('error.html', title = 'Error!', + message = 'Must use GET request type...') + + + +@app.route('/load-hello-world', methods=['GET', 'POST']) +def load_hello_world(): + if request.method == 'GET': + return "
Using Bootstrap 5 Themeing with Dark Mode defaulted...
-With React available...
-A React Example Page:
-
+ With HTMX available...