From 5018fc10e250731e3304d1351f6b4b78fe2285d1 Mon Sep 17 00:00:00 2001 From: esensar Date: Thu, 26 Apr 2018 16:45:28 +0200 Subject: [PATCH] Make devices module export a blueprint for better modularity --- app/__init__.py | 13 ++----------- app/mod_devices/__init__.py | 17 +++++++++++++++-- config.py | 2 +- requirements.txt | 13 +++++++++---- 4 files changed, 27 insertions(+), 18 deletions(-) diff --git a/app/__init__.py b/app/__init__.py index 9d86e35..efe28a0 100644 --- a/app/__init__.py +++ b/app/__init__.py @@ -1,21 +1,12 @@ -import atexit from flask import Flask from flask_sqlalchemy import SQLAlchemy -from app.mod_devices import setup_mqtt, tear_down_mqtt +from app.mod_devices import setup_mqtt, tear_down_mqtt, devices app = Flask(__name__, instance_relative_config=True) app.config.from_object('config') app.config.from_pyfile('config.py') db = SQLAlchemy(app) - - -def on_stop(): - print('Application stopping') - tear_down_mqtt() - - -setup_mqtt(app) -atexit.register(on_stop) +app.register_blueprint(devices, url_prefix='/devices') @app.route("/") diff --git a/app/mod_devices/__init__.py b/app/mod_devices/__init__.py index 73a8456..9d22d89 100644 --- a/app/mod_devices/__init__.py +++ b/app/mod_devices/__init__.py @@ -1,10 +1,23 @@ +import atexit +from flask import Blueprint from flask_mqtt import Mqtt +devices = Blueprint('devices', __name__) mqtt = Mqtt() +def on_stop(): + tear_down_mqtt() -def setup_mqtt(app): - mqtt.init_app(app) +atexit.register(on_stop) + +@devices.route("/") +def hello(): + return "Hello from devices!" + + +@devices.record +def setup_mqtt(setup_state): + mqtt.init_app(setup_state.app) mqtt.client.on_message = handle_mqtt_message mqtt.client.on_subscribe = handle_subscribe print('MQTT client initialized') diff --git a/config.py b/config.py index 4a944bd..13f259a 100644 --- a/config.py +++ b/config.py @@ -6,7 +6,7 @@ import os BASE_DIR = os.path.abspath(os.path.dirname(__file__)) # Define the database - we are working with -SQLALCHEMY_DATABASE_URI = 'sqlite:///' + os.path.join(BASE_DIR, 'app.db') +SQLALCHEMY_DATABASE_URI = os.environ['DATABASE_URL'] DATABASE_CONNECT_OPTIONS = {} # Application threads. A common general assumption is diff --git a/requirements.txt b/requirements.txt index 9099194..81fecd8 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,13 +1,18 @@ +alembic==0.9.9 click==6.7 Flask==0.12.2 +Flask-Migrate==2.1.1 Flask-MQTT==1.0.3 -greenlet==0.4.13 +Flask-SQLAlchemy==2.3.2 itsdangerous==0.24 Jinja2==2.10 +Mako==1.0.7 MarkupSafe==1.0 -msgpack==0.5.6 -neovim==0.2.4 paho-mqtt==1.3.1 +psycopg2==2.7.4 +python-dateutil==2.7.2 +python-editor==1.0.3 +six==1.11.0 +SQLAlchemy==1.2.7 typing==3.6.4 -virtualenv==15.2.0 Werkzeug==0.14.1