mirror of
https://github.com/fastapiadmin/FastapiAdmin.git
synced 2026-09-22 13:05:18 +00:00
refactor(menu): 优化菜单删除逻辑,自动删除子菜单 refactor(dept): 优化部门删除逻辑,自动删除子部门 feat(redis): 添加分布式锁功能 feat(validator): 新增DateStr和TimeStr验证类型 refactor(logger): 简化日志配置,移除开发环境同步策略 refactor(console): 重命名并简化控制台输出函数 feat(example): 添加示例模块,包含完整数据类型示例 refactor(gencode): 重构代码生成工具,移除SQL生成 feat(ai): 添加MCP客户端和服务端实现 chore: 更新依赖版本 style: 清理无用代码和文件
74 lines
2.7 KiB
Python
74 lines
2.7 KiB
Python
# -*- coding: utf-8 -*-
|
|
|
|
from datetime import datetime
|
|
from typing import Optional
|
|
from rich import get_console
|
|
from rich.panel import Panel
|
|
from rich.text import Text
|
|
from rich.console import Group
|
|
|
|
from app.config.setting import settings
|
|
|
|
console = get_console()
|
|
|
|
def console_run(host: str, port: int, reload: bool, *,
|
|
redis_ready: Optional[bool] = None,
|
|
scheduler_jobs: Optional[int] = None,
|
|
scheduler_status: Optional[str] = None
|
|
) -> None:
|
|
"""显示启动信息面板"""
|
|
|
|
url = f'http://{host}:{port}'
|
|
base_url = f'{url}{settings.ROOT_PATH}'
|
|
docs_url = base_url + settings.DOCS_URL
|
|
redoc_url = base_url + settings.REDOC_URL
|
|
|
|
# 核心服务信息
|
|
service_info = Text()
|
|
service_info.append(f"服务名称 {settings.TITLE} • 优雅 • 简洁 • 高效", style="bold magenta")
|
|
service_info.append(f"\n当前版本 v{settings.VERSION}" , style="bold green")
|
|
service_info.append(f"\n服务地址 {url}", style="bold blue")
|
|
service_info.append(f"\n运行环境 {settings.ENVIRONMENT.value if hasattr(settings.ENVIRONMENT, 'value') else settings.ENVIRONMENT}", style="bold red")
|
|
service_info.append(f"\n重载配置: {'✅ 开启' if reload else '❌ 关闭'}", style="bold italic")
|
|
service_info.append(f"\n调试模式: {'✅ 开启' if settings.DEBUG else '❌ 关闭'}", style="bold italic")
|
|
service_info.append(f"\n数据库类型: {settings.DATABASE_TYPE} 数据库", style="bold italic")
|
|
service_info.append(f"\nRedis: {'✅ 已连接' if redis_ready else '❌ 未连接'}", style="bold italic")
|
|
service_info.append(f"\n定时任务 {'✅ 运行中' if scheduler_status == 'running' else '⏸️ 暂停'} {scheduler_jobs}", style="bold italic")
|
|
|
|
docs_info = Text()
|
|
docs_info.append("📖 文档", style="bold magenta")
|
|
docs_info.append(f"\n🔗 Swagger: {docs_url}", style="blue link")
|
|
docs_info.append(f"\n🔗 ReDoc: {redoc_url}", style="blue link")
|
|
|
|
final_content = Group(
|
|
service_info,
|
|
"\n" + "─" * 40,
|
|
docs_info,
|
|
)
|
|
|
|
result = Panel(
|
|
renderable=final_content,
|
|
title="[bold purple]🚀 服务启动完成[/]",
|
|
border_style="green",
|
|
padding=(1, 2)
|
|
)
|
|
|
|
console.print(result)
|
|
|
|
def console_close():
|
|
"""显示关闭信息"""
|
|
shutdown_content = Text()
|
|
shutdown_content.append("🛑 ", style="bold red")
|
|
shutdown_content.append("FastapiAdmin 服务关闭")
|
|
shutdown_content.append(f"\n⏰ {datetime.now().strftime('%H:%M:%S')}")
|
|
shutdown_content.append("\n👋 感谢使用!", style="dim")
|
|
|
|
result = Panel(
|
|
shutdown_content,
|
|
title="[bold red]服务关闭[/]",
|
|
border_style="red",
|
|
padding=(1, 2)
|
|
)
|
|
|
|
console.print(result)
|