from flask import Flask from flask_sqlalchemy import SQLAlchemy from flask_login import LoginManager from flask_migrate import Migrate from .config import Config db = SQLAlchemy() login_manager = LoginManager() login_manager.login_view = 'main.login' migrate = Migrate() def create_app(config_class=Config): app = Flask(__name__) app.config.from_object(config_class) db.init_app(app) login_manager.init_app(app) migrate.init_app(app, db) from .routes import main_routes, ai_routes, source_routes, collection_routes, data_routes, deep_routes, sso_routes, knowledge_routes app.register_blueprint(main_routes.bp) app.register_blueprint(ai_routes.bp) app.register_blueprint(source_routes.bp) app.register_blueprint(collection_routes.bp) app.register_blueprint(data_routes.bp) app.register_blueprint(deep_routes.bp) app.register_blueprint(sso_routes.bp) app.register_blueprint(knowledge_routes.bp) from . import models with app.app_context(): db.create_all() @app.context_processor def inject_app_name(): return {'app_name': app.config.get('APP_NAME', '四川路桥采集平台')} from .knowledge_poller import KnowledgePoller poller = KnowledgePoller(app) poller.start() app.config['_KNOWLEDGE_POLLER'] = poller return app