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

from os import environ

from database.database import db_session, init_db
from database.schema import schema
from database.models import User, Role

app = Flask(__name__)

app.debug = True if "DEBUG" in environ and environ["DEBUG"] else False

app.add_url_rule(
    '/graphql',
    view_func=GraphQLView.as_view(
        'graphql',
        schema=schema,
        graphiql=True # for having the GraphiQL interface
    )
)

user_datastore = SQLAlchemySessionUserDatastore(db_session,
                                                User, Role)

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

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

if __name__ == '__main__':
    app.run()