50 lines
1.3 KiB
Python
50 lines
1.3 KiB
Python
from flask import Flask, session, url_for, escape, request, send_file, abort
|
|
from settings import config
|
|
from importlib import import_module
|
|
import os
|
|
import sys
|
|
|
|
def start_app():
|
|
|
|
app=Flask(__name__, static_url_path=config.static_url_path, static_folder=config.static_folder)
|
|
|
|
app.secret_key=config.secret_key
|
|
|
|
application_root='/'
|
|
|
|
if hasattr(config, 'application_root'):
|
|
application_root=config.application_root
|
|
|
|
|
|
app.config.update(
|
|
APPLICATION_ROOT=application_root
|
|
)
|
|
|
|
# Load blueprints
|
|
|
|
for added_app in config.apps:
|
|
|
|
a=import_module(added_app)
|
|
#print(added_app, file=sys.stdout)
|
|
app_name=getattr(a, config.apps[added_app][0])
|
|
|
|
app.register_blueprint(app_name)
|
|
|
|
#Add media files support. Only for development.
|
|
|
|
workdir=os.getcwd()
|
|
|
|
@app.route('/mediafrom/<module>/<path:media_file>')
|
|
def send_media_file(module, media_file):
|
|
|
|
file_path=workdir+'/themes/'+config.theme+'/media/'+module+'/'+media_file
|
|
|
|
if not os.path.isfile(file_path):
|
|
file_path=workdir+'/modules/'+module+'/media/'+media_file
|
|
|
|
if not os.path.isfile(file_path):
|
|
abort(404)
|
|
|
|
return send_file(file_path)
|
|
|
|
return app
|