jon/jon/__init__.py

50 lines
1.2 KiB
Python

import inspect
import json
import sys
from flask import Flask, render_template
from . import (
auth,
db,
entry,
inventory,
location,
template_utils
)
def create_app():
app = Flask(__name__)
app.config.from_file("default-config.json", load=json.load)
# You don't need a config.json. If you don't provide one, default-config.json
# is used.
app.config.from_file("config.json", load=json.load, silent=True)
db.init_app(app)
# This function denies every request until `auth.ACCESS_TOKEN`
# is passed using `?token=` to authenticate the session.
@app.before_request
def before_req_fun():
return auth.before_request()
@app.context_processor
def utility_processor():
return dict(inspect.getmembers(template_utils, inspect.isfunction))
app.register_blueprint(location.bp)
app.register_blueprint(inventory.bp)
app.register_blueprint(entry.bp)
app.register_blueprint(auth.bp)
@app.route("/")
def index():
return render_template("index.html")
print(f"Jon started. Token: {auth.ACCESS_TOKEN}", file=sys.stderr)
# TODO: Get host and port from config
print(f"http://localhost:5000/?token={auth.ACCESS_TOKEN}", file=sys.stderr)
return app