__init__.py 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  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-05-20 12:35:52 (CST)
  9. # Last Update:星期一 2016-6-27 15:0:21 (CST)
  10. # By:jianglin
  11. # Description:
  12. # **************************************************************************
  13. from flask import Flask, g
  14. from maple.extensions import (register_login, register_redis, register_mail)
  15. from maple.extensions import (register_form, register_babel,
  16. register_principal, register_jinja2,
  17. register_maple)
  18. from flask_login import current_user
  19. from flask_sqlalchemy import SQLAlchemy
  20. def create_app():
  21. app = Flask(__name__)
  22. app.config.from_object('config.config')
  23. app.url_map._rules.clear()
  24. app.url_map._rules_by_endpoint.clear()
  25. app.url_map.default_subdomain = 'forums'
  26. app.add_url_rule(app.static_url_path + '/<path:filename>',
  27. endpoint='static',
  28. view_func=app.send_static_file,
  29. subdomain='forums')
  30. return app
  31. def register(app):
  32. register_babel(app)
  33. register_form(app)
  34. register_principal(app)
  35. register_jinja2(app)
  36. register_maple(app)
  37. register_routes(app)
  38. def register_routes(app):
  39. from maple.forums.views import site
  40. app.register_blueprint(site, url_prefix='')
  41. from maple.topic.views import site
  42. app.register_blueprint(site, url_prefix='/topic')
  43. from maple.board.views import site
  44. app.register_blueprint(site, url_prefix='/<parent_b>')
  45. from maple.user.views import site
  46. app.register_blueprint(site, url_prefix='/u/<user_url>')
  47. from maple.mine.views import site
  48. app.register_blueprint(site, url_prefix='/user')
  49. from maple.setting.views import site
  50. app.register_blueprint(site, url_prefix='/setting')
  51. from maple.upload.views import site as upload_site
  52. app.register_blueprint(upload_site)
  53. from maple.tag.views import site
  54. app.register_blueprint(site, url_prefix='/t')
  55. from maple.docs.views import site
  56. app.register_blueprint(site, subdomain='docs')
  57. import maple.auth.views
  58. import maple.admin.admin
  59. app = create_app()
  60. db = SQLAlchemy(app)
  61. mail = register_mail(app)
  62. login_manager = register_login(app)
  63. redis_data = register_redis(app)
  64. register(app)
  65. @app.before_request
  66. def before_request():
  67. from maple.forums.forms import SortForm, SearchForm
  68. g.user = current_user
  69. g.sort_form = SortForm()
  70. g.search_form = SearchForm()