__init__.py 1.6 KB

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