Skip to content

Instantly share code, notes, and snippets.

@souzaux
Created July 18, 2016 20:33
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save souzaux/18877d97b63af7ea82565201a6c6d8e6 to your computer and use it in GitHub Desktop.
Save souzaux/18877d97b63af7ea82565201a6c6d8e6 to your computer and use it in GitHub Desktop.
Create a Flask application using the app factory pattern.
#app.py
def create_app(settings_override=None):
"""
Create a Flask application using the app factory pattern.
:param settings_override: Override settings
:return: Flask app
"""
app = Flask(__name__, instance_relative_config=True, static_folder=None)
#flask-tenant-schema:
#Subdomains in Flask
app.static_folder = 'static'
app.add_url_rule('/static/<path:filename>',
endpoint='static',
subdomain='<tenant>',
view_func=app.send_static_file)
app.config.from_object('config.settings')
app.config.from_pyfile('settings.py', silent=True)
if settings_override:
app.config.update(settings_override)
app.register_blueprint(user)
extensions(app)
authentication(app, User)
return app
#user.views.py
from flask import Blueprint, render_template
page = Blueprint('page', __name__, template_folder='templates', subdomain='<tenant>')
@page.route('/')
def home(tenant):
return render_template('page/home.html')
#extensions.py
from flask_sqlalchemy import SQLAlchemy
from sqlalchemy import MetaData
from flask_login import LoginManager
db = SQLAlchemy()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment