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. 修复模型继承关系问题
96 lines
5.2 KiB
Python
96 lines
5.2 KiB
Python
from datetime import datetime
|
|
from sqlalchemy import Column, DateTime, ForeignKey, Integer, String
|
|
from sqlalchemy.orm import relationship
|
|
from config.database import Base
|
|
from sqlalchemy import Boolean, Column, ForeignKey, String, Integer, Text, DateTime
|
|
|
|
from app.core.base_model import BaseMixin
|
|
from sqlalchemy import Boolean, Column, ForeignKey, String, Integer, Text, DateTime
|
|
from sqlalchemy.orm import relationship
|
|
|
|
from app.core.base_model import BaseMixin
|
|
|
|
from sqlalchemy import Boolean, Column, ForeignKey, String, Integer, Text, DateTime
|
|
|
|
from app.core.base_model import BaseMixin
|
|
|
|
|
|
class PageModel(BaseMixin):
|
|
__tablename__ = "gen_page"
|
|
|
|
page_name = Column(String(length=255), comment='页面名称')
|
|
|
|
keywords = Column(String(length=500), comment='页面关键词')
|
|
|
|
title = Column(String(length=500), comment='页面title标题')
|
|
|
|
|
|
class GenTable(Base):
|
|
"""
|
|
代码生成业务表
|
|
"""
|
|
|
|
__tablename__ = 'gen_table'
|
|
|
|
table_id = Column(Integer, primary_key=True, autoincrement=True, comment='编号')
|
|
table_name = Column(String(200), nullable=True, default='', comment='表名称')
|
|
table_comment = Column(String(500), nullable=True, default='', comment='表描述')
|
|
sub_table_name = Column(String(64), nullable=True, comment='关联子表的表名')
|
|
sub_table_fk_name = Column(String(64), nullable=True, comment='子表关联的外键名')
|
|
class_name = Column(String(100), nullable=True, default='', comment='实体类名称')
|
|
tpl_category = Column(String(200), nullable=True, default='crud', comment='使用的模板(crud单表操作 tree树表操作)')
|
|
tpl_web_type = Column(
|
|
String(30), nullable=True, default='', comment='前端模板类型(element-ui模版 element-plus模版)'
|
|
)
|
|
package_name = Column(String(100), nullable=True, comment='生成包路径')
|
|
module_name = Column(String(30), nullable=True, comment='生成模块名')
|
|
business_name = Column(String(30), nullable=True, comment='生成业务名')
|
|
function_name = Column(String(100), nullable=True, comment='生成功能名')
|
|
function_author = Column(String(100), nullable=True, comment='生成功能作者')
|
|
gen_type = Column(String(1), nullable=True, default='0', comment='生成代码方式(0zip压缩包 1自定义路径)')
|
|
gen_path = Column(String(200), nullable=True, default='/', comment='生成路径(不填默认项目路径)')
|
|
options = Column(String(1000), nullable=True, comment='其它生成选项')
|
|
create_by = Column(String(64), default='', comment='创建者')
|
|
create_time = Column(DateTime, nullable=True, default=datetime.now(), comment='创建时间')
|
|
update_by = Column(String(64), default='', comment='更新者')
|
|
update_time = Column(DateTime, nullable=True, default=datetime.now(), comment='更新时间')
|
|
remark = Column(String(500), nullable=True, default=None, comment='备注')
|
|
|
|
columns = relationship('GenTableColumn', order_by='GenTableColumn.sort', back_populates='tables')
|
|
|
|
|
|
class GenTableColumn(Base):
|
|
"""
|
|
代码生成业务表字段
|
|
"""
|
|
|
|
__tablename__ = 'gen_table_column'
|
|
|
|
column_id = Column(Integer, primary_key=True, autoincrement=True, comment='编号')
|
|
table_id = Column(Integer, ForeignKey('gen_table.table_id'), nullable=True, comment='归属表编号')
|
|
column_name = Column(String(200), nullable=True, comment='列名称')
|
|
column_comment = Column(String(500), nullable=True, comment='列描述')
|
|
column_type = Column(String(100), nullable=True, comment='列类型')
|
|
python_type = Column(String(500), nullable=True, comment='PYTHON类型')
|
|
python_field = Column(String(200), nullable=True, comment='PYTHON字段名')
|
|
is_pk = Column(String(1), nullable=True, comment='是否主键(1是)')
|
|
is_increment = Column(String(1), nullable=True, comment='是否自增(1是)')
|
|
is_required = Column(String(1), nullable=True, comment='是否必填(1是)')
|
|
is_unique = Column(String(1), nullable=True, comment='是否唯一(1是)')
|
|
is_insert = Column(String(1), nullable=True, comment='是否为插入字段(1是)')
|
|
is_edit = Column(String(1), nullable=True, comment='是否编辑字段(1是)')
|
|
is_list = Column(String(1), nullable=True, comment='是否列表字段(1是)')
|
|
is_query = Column(String(1), nullable=True, comment='是否查询字段(1是)')
|
|
query_type = Column(String(200), nullable=True, default='EQ', comment='查询方式(等于、不等于、大于、小于、范围)')
|
|
html_type = Column(
|
|
String(200), nullable=True, comment='显示类型(文本框、文本域、下拉框、复选框、单选框、日期控件)'
|
|
)
|
|
dict_type = Column(String(200), nullable=True, default='', comment='字典类型')
|
|
sort = Column(Integer, nullable=True, comment='排序')
|
|
create_by = Column(String(64), default='', comment='创建者')
|
|
create_time = Column(DateTime, nullable=True, default=datetime.now(), comment='创建时间')
|
|
update_by = Column(String(64), default='', comment='更新者')
|
|
update_time = Column(DateTime, nullable=True, default=datetime.now(), comment='更新时间')
|
|
|
|
tables = relationship('GenTable', back_populates='columns')
|