__init__.py 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. # **************************************************************************
  4. # Copyright © 2017 jianglin
  5. # File Name: __init__.py
  6. # Author: jianglin
  7. # Email: xiyang0807@gmail.com
  8. # Created: 2017-01-25 20:10:50 (CST)
  9. # Last Update:星期六 2017-3-25 18:24:12 (CST)
  10. # By:
  11. # Description:
  12. # **************************************************************************
  13. from flask import Flask
  14. from flask_maple.lazy import LazyExtension
  15. from forums.admin.urls import admin
  16. from .logs import register_logging
  17. from .filters import register_jinja2
  18. import os
  19. def create_app(config):
  20. templates = os.path.abspath(
  21. os.path.join(os.path.dirname(__file__), os.pardir, 'templates'))
  22. static = os.path.abspath(
  23. os.path.join(os.path.dirname(__file__), os.pardir, 'static'))
  24. app = Flask(__name__, template_folder=templates, static_folder=static)
  25. app.config.from_object(config)
  26. register(app)
  27. return app
  28. def register(app):
  29. register_extension(app)
  30. register_router(app)
  31. register_logging(app)
  32. register_jinja2(app)
  33. def register_router(app):
  34. from forums.api.urls import api_routers
  35. from forums.docs.urls import docs_routers
  36. api_routers(app)
  37. docs_routers(app)
  38. def register_extension(app):
  39. extension = LazyExtension(
  40. module='forums.extension.',
  41. extension=['db', 'avatar', 'cache', 'csrf', 'bootstrap', 'captcha',
  42. 'error', 'redis_data', 'principal', 'babel',
  43. 'login_manager', 'maple_app', 'mail', 'middleware'])
  44. extension.init_app(app)
  45. admin.init_app(app)