__init__.py 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. from flask import Flask
  2. from flask_sqlalchemy import SQLAlchemy
  3. from flask_login import LoginManager
  4. from flask_migrate import Migrate
  5. from .config import Config
  6. db = SQLAlchemy()
  7. login_manager = LoginManager()
  8. login_manager.login_view = 'main.login'
  9. migrate = Migrate()
  10. def create_app(config_class=Config):
  11. app = Flask(__name__)
  12. app.config.from_object(config_class)
  13. db.init_app(app)
  14. login_manager.init_app(app)
  15. migrate.init_app(app, db)
  16. from .routes import main_routes, ai_routes, source_routes, collection_routes, data_routes, deep_routes, sso_routes, knowledge_routes
  17. app.register_blueprint(main_routes.bp)
  18. app.register_blueprint(ai_routes.bp)
  19. app.register_blueprint(source_routes.bp)
  20. app.register_blueprint(collection_routes.bp)
  21. app.register_blueprint(data_routes.bp)
  22. app.register_blueprint(deep_routes.bp)
  23. app.register_blueprint(sso_routes.bp)
  24. app.register_blueprint(knowledge_routes.bp)
  25. from . import models
  26. with app.app_context():
  27. db.create_all()
  28. @app.context_processor
  29. def inject_app_name():
  30. return {'app_name': app.config.get('APP_NAME', '路桥采集平台')}
  31. from .knowledge_poller import KnowledgePoller
  32. poller = KnowledgePoller(app)
  33. poller.start()
  34. app.config['_KNOWLEDGE_POLLER'] = poller
  35. return app