mirror of
https://github.com/fastapiadmin/FastapiAdmin.git
synced 2026-09-21 04:46:26 +00:00
重构代码生成模块,删除冗余文件并优化结构: 1. 删除旧的form、page、table等相关文件 2. 新增gencode模块基础结构 3. 移动jinja2工具类和模板引擎初始化器到utils目录 4. 优化数据库模型关系定义 5. 更新nginx配置支持WebSocket 6. 添加正则验证和加密工具类 7. 修复菜单和部门模型的循环引用问题 8. 优化初始化脚本和配置加载逻辑 调整初始化流程,使用统一会话管理: 1. 修改数据库初始化使用AsyncSessionLocal 2. 优化定时任务初始化逻辑 3. 统一配置和字典服务初始化方式 4. 修复模型关系定义导致的循环导入问题 其他改进: 1. 更新requirements.txt添加依赖 2. 调整IP白名单配置 3. 优化数据库连接日志输出 4. 修复模型继承关系问题
45 lines
1.7 KiB
Python
45 lines
1.7 KiB
Python
from jinja2 import Environment, FileSystemLoader, select_autoescape
|
|
import os
|
|
|
|
from module_gen.utils.jinja2_tools import snake_to_pascal_case, snake_to_camel, snake_2_colon, is_base_column, \
|
|
get_sqlalchemy_type, get_column_options
|
|
|
|
|
|
class VelocityInitializer:
|
|
"""模板引擎初始化器"""
|
|
|
|
@staticmethod
|
|
def init_velocity() -> Environment:
|
|
"""初始化模板引擎"""
|
|
try:
|
|
# 设置模板加载器
|
|
template_dir = os.path.abspath(os.path.join(os.getcwd(), 'module_gen/templates'))
|
|
loader = FileSystemLoader(template_dir)
|
|
|
|
# 创建Jinja2环境
|
|
env = Environment(
|
|
loader=loader,
|
|
autoescape=select_autoescape(['html', 'xml']),
|
|
trim_blocks=True,
|
|
lstrip_blocks=True
|
|
)
|
|
|
|
# 添加自定义过滤器
|
|
env.filters.update({
|
|
'capitalize': lambda x: x.capitalize(),
|
|
'lower': lambda x: x.lower(),
|
|
'upper': lambda x: x.upper(),
|
|
'camelcase': lambda x: ''.join(word.title() for word in x.split('_')),
|
|
'snakecase': lambda x: '_'.join(x.lower().split()),
|
|
'snake_to_pascal_case': snake_to_pascal_case,
|
|
'snake_to_camel': snake_to_camel,
|
|
'snake_2_colon': snake_2_colon,
|
|
'is_base_column': is_base_column,
|
|
'get_sqlalchemy_type': get_sqlalchemy_type,
|
|
'get_column_options': get_column_options,
|
|
})
|
|
|
|
return env
|
|
|
|
except Exception as e:
|
|
raise RuntimeError(f"初始化模板引擎失败: {str(e)}") |