ramwin / tyadmin_api_cli

基于Django Restful Framework 和 Antd Design Pro V4 类似Xadmin 的基于Models 的管理后台前后端生成工具

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

基于Django Restful Framework 和 Antd Design Pro V4 类似Xadmin 的基于Models 的管理后台前后端生成工具。

更强大,更现代化,自定义度更高的Xadmin!!! 自动生成前后端管理后台,神奇自动对接。免去普通增删改查,筛选,搜索功能开发。

交流反馈群: 304094780

只需要设计好Model,运行两条命令python manage.py init_admin,python manage.py gen_all

后端代码生成一个django app到项目目录, 代码归你掌控,无阻二次开发! 前端生成一个完整的Antd design pro V4项目,代码归你掌控,无阻二次开发!

前端页面, 后端接口,路由,菜单全部自动对接。

已生成示例网站:

  1. https://imooc.funpython.cn/xadmin

  2. https://mooc.funpython.cn/xadmin

demo项目快速上手

1. 获得一个还未拥有后台api界面的demo项目代码(已存在项目可直接从第二步开始):

git clone https://github.com/mtianyan/cookiecutter-tyadmin-demo.git
# 安装项目 原本就需要的依赖
pip install -r requirement.txt

2. 安装tyadmin-api-cli

pip install tyadmin-api-cli

3. 注册tyadmin-api-cli

INSTALLED_APPS = [
    'tyadmin_api_cli',
]

TY_ADMIN_CONFIG = {
    'GEN_APPS': ['users', 'article']
}

填写你想要生成的app列表。

4. 初始化 后端app 及 前端项目 并 生成后端自动化的视图,过滤器,路由,序列器。 前端页面及路由菜单。

python manage.py init_admin && python manage.py gen_all

5. 注册生成出的app

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

6. 注册路由

    path('api/xadmin/v1/', include('tyadmin_api.urls')),

7. 运行后端项目,运行前端项目

python manage.py makemigrations
python manage.py migrate
python manage.py runserver # 默认运行在8000端口

安装Node.js -> https://www.runoob.com/nodejs/nodejs-install-setup.html

安装Node.js 10以上,推荐安装版本Latest LTS Version: 12.19.0

cd tyadmin
npm install
npm run start # 默认会运行在8001端口

访问http://127.0.0.1:8001/xadmin/

内嵌自动dashboard,自动注册现有model count 数据。

全自动的列表展示,搜索,筛选功能。

内嵌富文本支持,仅需把字段定义为richTextField,无需任何额外集成。

model->前端对应关系

字段类型 前端展示
ForeignKey 单选
ManyToManyField 多选 & 多彩标签展示
richTextField 富文本展示
CharField or IntegerField(with choices) 多选
CharField or IntegerField 输入框
ImageField 带预览上传,可选头像,图片列表展示
FileField 文件上传
TextField TextArea框
BooleanField Switch选择
IntegerField 数字input
DateField Date选择器
DateTimeField DateTime选择器

ForeignKey自动生成下拉单选菜单, ManyToManyField自动生成下拉多选菜单

指定f'{MAIN_DISPLAY}__name' 关联另一张表哪个字段用于table显示

course_org = ForeignKey(CourseOrg, verbose_name="所属机构",
                        help_text=f'{MAIN_DISPLAY}__name')

labels = ManyToManyField("Label", verbose_name="课程拥有的label", 
                help_text=f'{MAIN_DISPLAY}__title')

richTextField 自动生成富文本

detail = richTextField(verbose_name="课程详情")

CharField和IntegerField choices 自动生成表单前端下拉选择框。

GENDER_CHOICES = (
   ("male", "男"),
   ("female", "女")
)
gender = CharField(verbose_name="性别",choices=GENDER_CHOICES)

ImageField 自动生成带预览的表单上传功能,列表页可选两种展示方式。

avatar = ImageField(verbose_name="头像", help_text=MAIN_AVATAR)
image = ImageField(verbose_name="封面图", help_text=MAIN_PIC)    

头像样式 MAIN_AVATAR:

图片样式 MAIN_PIC:

FileField 字段生成文件上传功能。

download = FileField(verbose_name="资源文件", max_length=100)

TextField 自动生成前端TextArea 框

desc = TextField(verbose_name="课程描述")

BooleanField 自动前端 Boolean 单选

is_banner = BooleanField(verbose_name="是否轮播")

IntegerField 自动前端 Int 输入框

learn_times = IntegerField(verbose_name="学习时长(分钟数)")

DateField 自动前端 Date选择框

birthday = DateField(verbose_name="生日")

DateTimeField 自动表单 DateTime 选择框。时间范围筛选器。

last_login = DateTimeField(verbose_name="上次登录")

注意设置了default,auto_now的不会出现在表单

基于Model定义的表单字段级别自动验证

    title = CharField(max_length=255, verbose_name="课程标题", unique=True)

轻松的后端自定义验证

if xxx:
    raise ValidationError({"filed_name": ["错误提示"]})

About

基于Django Restful Framework 和 Antd Design Pro V4 类似Xadmin 的基于Models 的管理后台前后端生成工具

License:MIT License


Languages

Language:Python 51.5%Language:JavaScript 36.9%Language:TypeScript 5.1%Language:Less 5.0%Language:HTML 1.5%