Bootstrap

django后台系统Tyadmin

无意之间发现个django的后台管理框架,仔细与xadmin对比了一下,无论是功能上还是便携性上都与xadmin特别相似,但个人感觉Tyadmin略胜一筹,因为外观上要比xadmin要美观,而且相比起来速度也快,部署甚至也和简单,最重要的是它号称0代码实现后台管理系统,当然如果进行二次开发的话不可能是0代码。那么简单来介绍一下它:

自动生成前后端管理后台,页面接口神奇全自动对接

增删改查,筛选,搜索,数据全量导出,选择导出

外键字段,多对多字段,富文本,文件,图片,django自带权限系统

由Django Restful Framework 和 Ant Design Pro V4 驱动

那么…感受一下吧!!

注册

pip3 install tyadmin-api-cli

在django项目中的setting中配置以下

INSTALLED_APPS = [
    'captcha',
    'tyadmin_api_cli',
]
#GEN_APPS: 填写你想要生成的app列表
TY_ADMIN_CONFIG = {
    'GEN_APPS': ['luwei']
}

初始化

初始化 后端app(tyadmin_api) + 前端项目(tyadmin) && 生成后端自动化的视图,过滤器,路由,序列器 + 前端页面及路由菜单

生成后端页面依赖,需安装Node.js -> https://www.runoob.com/nodejs/nodejs-install-setup.html

python3 manage.py init_admin && python3 manage.py gen_all && cd tyadmin && npm install && npm run build

此时生成出一个叫做tyadmin_api的app 注册它

INSTALLED_APPS = [
    'captcha',
    'tyadmin_api_cli',
    'tyadmin_api'
]

注册首页路由

from django.urls import path,re_path,include
from tyadmin_api.views import AdminIndexView
urlpatterns = [
    re_path('^xadmin/.*', AdminIndexView.as_view()),
    path('api/xadmin/v1/', include('tyadmin_api.urls')),
    ]

创建django的子app

python3 manage.py startapp luwei
INSTALLED_APPS = [
    'captcha',
    'tyadmin_api_cli',
    'tyadmin_api',
    'luwei'
]

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR, 'templates')],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]

if DEBUG:
    STATICFILES_DIRS = [
        os.path.join(BASE_DIR, "static"),
    ]
else:
    STATIC_ROOT = os.path.join(BASE_DIR, 'static')

运行

python3 manage.py makemigrations
python3 manage.py migrate
python3 manage.py createsuperuser # 创建一个可以登入后台的用户
python3 manage.py runserver # 默认运行在8000端口

访问http://127.0.0.1:8000/xadmin/ 输入刚才创建的用户名密码登录

注意事项

如果图片不显示

# urls.py 
from django.views.static import serve

urlpatterns = [
re_path('media/(?P<path>.*)', serve, {"document_root": settings.MEDIA_ROOT}),
]

如果新增了app与app内的model怎么生成页面与接口

TY_ADMIN_CONFIG = {
    'GEN_APPS': ['luwei','luwei2']
}
python3 manage.py gen_all && cd tyadmin && npm run build

还可以单独生成前端独立项目

cd tyadmin
npm install
npm run start:dev # 默认8001端口

启动前端之前先启动后端项目运行在8000端口,访问 http://127.0.0.1:8001/xadmin/

model->前端对应关系

字段类型前端展示
ForeignKey单选
ManyToManyField多选 & 多彩标签展示
richTextField富文本展示
CharField or IntegerField(with choices)多选
CharField or IntegerField输入框
ImageField带预览上传,可选头像,图片列表展示
FileField文件上传
TextFieldTextArea框
BooleanFieldSwitch选择
IntegerField数字input
DateFieldDate选择器
DateTimeFieldDateTime选择器
;