aboutsummaryrefslogtreecommitdiffstats
path: root/snag/__init__.py
diff options
context:
space:
mode:
authorMatt Kohls <mattkohls13@gmail.com>2023-09-04 15:36:33 -0400
committerMatt Kohls <mattkohls13@gmail.com>2023-09-04 15:36:33 -0400
commitc8ef8843aaaf28bc38b544ae8ac72accf233aead (patch)
tree53e846d7480814040bbebe11dd6e290f5d366589 /snag/__init__.py
downloadsensor-aggregator-c8ef8843aaaf28bc38b544ae8ac72accf233aead.tar.gz
sensor-aggregator-c8ef8843aaaf28bc38b544ae8ac72accf233aead.tar.bz2
sensor-aggregator-c8ef8843aaaf28bc38b544ae8ac72accf233aead.zip
Revamped project init
New repo for larger structural changes from Sensor-Server. Currently doing most all the same stuff but hopefully better. Still have to clean out some of the older templates for the new interface
Diffstat (limited to 'snag/__init__.py')
-rw-r--r--snag/__init__.py41
1 files changed, 41 insertions, 0 deletions
diff --git a/snag/__init__.py b/snag/__init__.py
new file mode 100644
index 0000000..c0b936f
--- /dev/null
+++ b/snag/__init__.py
@@ -0,0 +1,41 @@
+# snag
+# Matt Kohls
+# (c) 2023
+
+import os
+
+from flask import Flask
+
+def create_app(test_config=None):
+ # create and configure the app
+ app = Flask(__name__, instance_relative_config=True)
+ app.config.from_mapping(
+ SECRET_KEY='development_key',
+ DATABASE=os.path.join(app.instance_path, 'snag.sqlite'),
+ )
+
+ # probably not going to mess with test stuff but just in case
+ if test_config is None:
+ # load the instance config, if it exists, when not testing
+ app.config.from_pyfile('config.py', silent=True)
+ else:
+ # load the test config if passed in
+ app.config.from_mapping(test_config)
+
+ # ensure the instance folder exists
+ try:
+ os.makedirs(app.instance_path)
+ except OSError:
+ pass
+
+ from . import db
+ db.init_app(app)
+
+ from . import graphs, data, dashboard
+ app.register_blueprint(graphs.bp)
+ app.register_blueprint(data.bp)
+ app.register_blueprint(dashboard.bp)
+ app.add_url_rule('/', endpoint='dashboard')
+
+ return app
+