54 lines
1.8 KiB
Python
54 lines
1.8 KiB
Python
# +======================================================================
|
|
# | 模块: 应用工厂层
|
|
# | 说明: 创建并配置 Tornado 应用实例(路由、模板/静态目录、调试与安全选项),
|
|
# | 并完成扩展初始化
|
|
# +======================================================================
|
|
"""应用工厂。"""
|
|
|
|
# ----------------------------------------------------------------------
|
|
# 导入依赖
|
|
# 涵盖:应用配置(根路径/调试开关)、认证配置(JWT 秘钥)、
|
|
# 扩展注册入口、路由聚合、Tornado 框架
|
|
# ----------------------------------------------------------------------
|
|
from config.app import ROOT_PATH, TORNADO_DEBUG
|
|
from config.auth import JWT_SECRET
|
|
from extensions import register_extensions
|
|
from api.v1.router import build_routes
|
|
import tornado.web
|
|
|
|
|
|
# ======================================================================
|
|
# 创建应用实例
|
|
# ======================================================================
|
|
def create_app():
|
|
"""创建 Tornado 应用实例。
|
|
|
|
:return: 配置完成的 Tornado Application 实例
|
|
"""
|
|
app = tornado.web.Application(
|
|
# 初始化路由
|
|
build_routes(),
|
|
# 模板文件目录
|
|
template_path=str(ROOT_PATH / "templates"),
|
|
# 静态文件路径
|
|
static_path=str(ROOT_PATH / "static"),
|
|
# 静态文件路由前缀
|
|
static_url_prefix="/static/",
|
|
# 调试模式
|
|
debug=TORNADO_DEBUG,
|
|
# 自动重载
|
|
autoreload=False,
|
|
# 支持 gzip 压缩
|
|
gzip=True,
|
|
# 禁用自动转义
|
|
autoescape=None,
|
|
# 防跨站请求攻击
|
|
xsrf_cookies=None,
|
|
# COOKIE 秘钥
|
|
cookie_secret=JWT_SECRET,
|
|
)
|
|
|
|
# 初始化扩展
|
|
register_extensions(app)
|
|
return app
|