feature: 添加ssh连不上的日志
简体中文 | English
DashGo谐音大西瓜,这是一个开箱即用的低代码WEB框架,基于Plotly Dash框架和Fac开源组件库开发,只需要Python语言实现全栈的后台管理系统开发
https://github.com/luojiaaoo/dashgo-knowledge
├─assets # 静态资源目录 │ ├─imgs # 图片资源 │ └─js # js文件资源(dash框架预加载js文件、浏览器回调js等) ├─common # Python共享功能库 │ └─utilities # Python工具类 ├─config # 项目配置目录 ├─dash_callback # Dash回调库 │ ├─application │ │ ├─access_ │ │ ├─dashboard_ │ │ └─person_ │ └─pages ├─dash_components # Dash自定义组件 ├─dash_view # Dash视图 │ ├─application # 应用视图,以“_”结尾的为内置应用 │ │ ├─access_ │ │ ├─dashboard_ │ │ ├─example_app # 应用例子 │ │ ├─notification_ │ │ └─person_ │ ├─framework │ └─pages ├─database # 数据库 │ └─sql_db # 关系型数据库配置 │ ├─dao # 数据库orm抽象 │ └─entity # 数据库表实体 └─translations # 国际化 └─topic_locales
以example_app为例,存在2个应用页面 —— subapp1 subapp2 在config/access_factory.py中注册以上2个页面,系统会自动识别页面中的配置信息
以example_app为例,存在2个应用页面 —— subapp1 subapp2
在config/access_factory.py中注册以上2个页面,系统会自动识别页面中的配置信息
以应用subapp1为例:
from common.utilities.util_menu_access import MenuAccess import feffery_antd_components as fac import feffery_utils_components as fuc from common.utilities.util_logger import Log from dash_components import Card # 二级菜单的标题、图标和显示顺序 title = '应用1' icon = None order = 2 logger = Log.get_logger(__name__) ############# 注册权限,固定全局变量名access_metas ################ access_metas = ( '应用1-基础权限', '应用1-权限1', '应用1-权限2', ) ############# 返回视图页面的方法,方法名固定为render_content,menu_access为用户权限对象,kwargs为url内的query参数信息 ######### def render_content(menu_access: MenuAccess, **kwargs): return fac.AntdFlex( [ *( [ Card( fac.AntdStatistic( title='展示', value=fuc.FefferyCountUp(end=100, duration=3), ), title='应用1-权限1', ) ] if menu_access.has_access('应用1-权限1') ############# 判断是否拥有“应用1-权限1”的权限 else [] ), *( [ Card( fac.AntdStatistic( title='展示', value=fuc.FefferyCountUp(end=200, duration=3), ), title='应用1-权限2', ) ] if menu_access.has_access('应用1-权限2') ############# 判断是否拥有“应用1-权限2”的权限 else [] ), ], wrap='wrap', )
在render_content中有参数menu_access可以进行权限的校验,回调中如何实现?
答:通过get_menu_access,根据cookie中的jwt的用户名字段,查询数据库,获取权限对象
from common.utilities.util_menu_access import get_menu_access menu_access = get_menu_access() menu_access.has_access('xxx')
如果只需要获取cookie中的jwt的用户名字段,减少数据库IO
from common.utilities.util_menu_access import get_menu_access op_name = get_menu_access(only_get_user_name=True)
在translations\topic_locales中新建json文件(内容格式参考已存在的文件,推荐一级目录的名字来新建文件,下级的应用共用一个国际化json文件,json中的topic字段为主题字段,也推荐和一级目录的名字保持一致)
在i18n.py中添加,xxxx替换为一级目录的名字
t__xxxx = partial(translator.t, locale_topic='xxxx')
在需要翻译的视图或者回调函数中,按以下格式替换字符串,即可完成国际化
from i18n import t__xxxx t__xxxx('Chrome内核版本号太低,请升级浏览器')
windows用户根据requirements_win.txt,linux用户根据requirements_linux.txt 安装Python依赖
安装依赖命令: python -m pip install -r requirements_xxx.txt
执行bin/init下的create_rds_table和init_rds_data脚本,分别初始化数据库表结构和admin管理员数据
进入到src目录,执行python app.py,即可启动调试模式,根据日志提示中的URL进行访问
默认账号:admin、密码:admin123 bin目录下已放置启动start脚本,可以作为生产启动脚本(windows用waitress/linux用gunicorn作为WSGI服务组件)
默认账号:admin、密码:admin123
bin目录下已放置启动start脚本,可以作为生产启动脚本(windows用waitress/linux用gunicorn作为WSGI服务组件)
如要使用任务中心模块,需要进入到src目录,执行python app_apscheduler.py启动任务进程
bin目录下已放置启动start_background_task脚本,可以作为生产启动脚本
请在Dash的世界畅游吧!!!
默认启动为sqlite数据库,如需用于生产,请根据config/dashgo.ini调整相关Mysql数据库配置
DashGo谐音大西瓜,这是一个开箱即用的低代码WEB框架,基于Plotly Dash框架和Fac开源组件库开发,只需要Python语言实现全栈的后台管理系统开发。
©Copyright 2023 CCF 开源发展委员会 Powered by Trustie& IntelliDE 京ICP备13000930号
DashGo
简体中文 | English
一、简介
DashGo谐音大西瓜,这是一个开箱即用的低代码WEB框架,基于Plotly Dash框架和Fac开源组件库开发,只需要Python语言实现全栈的后台管理系统开发
功能:
特点:
https://github.com/luojiaaoo/dashgo-knowledge)二、项目结构
三、用法
添加新应用
以应用subapp1为例:
相关功能对象
在render_content中有参数menu_access可以进行权限的校验,回调中如何实现?
答:通过get_menu_access,根据cookie中的jwt的用户名字段,查询数据库,获取权限对象
如果只需要获取cookie中的jwt的用户名字段,减少数据库IO
国际化
在translations\topic_locales中新建json文件(内容格式参考已存在的文件,推荐一级目录的名字来新建文件,下级的应用共用一个国际化json文件,json中的topic字段为主题字段,也推荐和一级目录的名字保持一致)
在i18n.py中添加,xxxx替换为一级目录的名字
在需要翻译的视图或者回调函数中,按以下格式替换字符串,即可完成国际化
四、启动平台
windows用户根据requirements_win.txt,linux用户根据requirements_linux.txt 安装Python依赖
安装依赖命令: python -m pip install -r requirements_xxx.txt
执行bin/init下的create_rds_table和init_rds_data脚本,分别初始化数据库表结构和admin管理员数据
进入到src目录,执行python app.py,即可启动调试模式,根据日志提示中的URL进行访问
如要使用任务中心模块,需要进入到src目录,执行python app_apscheduler.py启动任务进程
请在Dash的世界畅游吧!!!
五、截图