34 lines
1.1 KiB
Python
34 lines
1.1 KiB
Python
import os
|
|
from flask import Flask, send_from_directory
|
|
from .extensions import db, migrate, cors
|
|
from config import config
|
|
|
|
def create_app(config_name=None):
|
|
if config_name is None:
|
|
config_name = os.environ.get('FLASK_ENV', 'production')
|
|
|
|
app = Flask(__name__, static_folder='static', static_url_path='')
|
|
app.config.from_object(config.get(config_name, config['default']))
|
|
|
|
db.init_app(app)
|
|
migrate.init_app(app, db)
|
|
cors.init_app(app, resources={r'/api/*': {'origins': '*'}})
|
|
|
|
from .routes.projects import projects_bp
|
|
from .routes.deliverables import deliverables_bp
|
|
app.register_blueprint(projects_bp, url_prefix='/api')
|
|
app.register_blueprint(deliverables_bp, url_prefix='/api')
|
|
|
|
with app.app_context():
|
|
db.create_all()
|
|
|
|
@app.route('/', defaults={'path': ''})
|
|
@app.route('/<path:path>')
|
|
def serve_react(path):
|
|
static_folder = app.static_folder
|
|
if path and os.path.exists(os.path.join(static_folder, path)):
|
|
return send_from_directory(static_folder, path)
|
|
return send_from_directory(static_folder, 'index.html')
|
|
|
|
return app
|