Skip to content
Snippets Groups Projects
app.py 1001 B
Newer Older
Mark's avatar
Mark committed
from flask import Flask
from flask_security import Security, login_required
Mark's avatar
Mark committed
from flask_graphql import GraphQLView

from os import environ

from database.database import db_session, init_db, get_user_datastore
Mark's avatar
Mark committed
from database.schema import schema
from database.models import User
Mark's avatar
Mark committed

app = Flask(__name__)

app.debug = True if "DEBUG" in environ and environ["DEBUG"] else False
Mark's avatar
Mark committed
app.config["SECRET_KEY"] = "_" if "SECRET_KEY" not in environ else environ["SECRET_KEY"]
app.config["SECURITY_PASSWORD_SALT"] = app.config["SECRET_KEY"]

user_datastore = get_user_datastore()
security = Security(app, user_datastore)
Mark's avatar
Mark committed

app.add_url_rule(
    '/graphql',
    view_func=GraphQLView.as_view(
        'graphql',
        schema=schema,
        graphiql=app.debug # for having the GraphiQL interface
Mark's avatar
Mark committed
    )
)


@app.teardown_appcontext
def shutdown_session(exception=None):
    db_session.remove()

@app.before_first_request
def initialize_database():
    init_db()

if __name__ == '__main__':
Mark's avatar
Mark committed
    app.run(host="0.0.0.0")