1- # TyAdmin 基于Django Restful Framework 和 Antd Design Pro V4 的基于Models 的 ** No Code ** 零代码零学习成本管理后台前后端生成工具。
1+ # TyAdmin: Django 基于Models 的 ** No Code ** 零代码零学习成本管理后台前后端生成工具, 由Django Restful Framework 和 Antd Design Pro V4 驱动
22
33![ ] ( https://img.shields.io/pypi/v/tyadmin-api-cli )
44![ ] ( https://img.shields.io/pypi/wheel/tyadmin-api-cli )
55
6- 线上demo地址: https://tyadmin.funpython.cn/xadmin 账号: tyadmin 密码: tyadmin
6+ ## 🎬 在线体验Demo
77
8- TyAdmin: 只需要花五分钟按着README中快速上手配置,无额外文档,无框架学习成本,零代码,全自动!更强大!更现代化!功能更多!
8+ > 账号: tyadmin 密码: tyadmin
9+
10+ 演示地址: https://tyadmin.funpython.cn/xadmin
11+
12+ ** No Code!!! 一行代码都不写,就能拥有的现代化后台管理**
13+
14+ TyAdmin: 只需要花五分钟阅读README即可快速上手,无额外文档,无框架学习成本,不用自己写一行代码,全自动的后台,你值得拥有!
15+
16+ 📨 互动交流反馈QQ群: 304094780
17+
18+ [ 直接上手] ( #快速上手 )
19+
20+ # ✨ 特性
921
10220 . 自动生成前后端管理后台,页面接口神奇全自动对接。登录验证,修改密码,Dashboard数据统计。
11231 . 一次拥有 ** 增删改查,筛选,搜索,数据全量导出,选择导出**
12- 2 . 外键字段,多对多字段,富文本,文件,图片,django自带权限系统,
13- 3 . 已兼容第三方 django-celery-beat 后台管理
24+ 2 . 外键字段,多对多字段,富文本,文件,图片,django自带权限系统
25+
26+ 只需要设计好Model,在settings中配置需要生成哪些model,运行一条命令` python manage.py init_admin && python manage.py gen_all `
27+
28+ > 后端代码生成一个django app到项目目录, 只需注册一下, 无需再写一行代码! 代码归你掌控,无阻二次开发!
29+ > 前端生成一个完整的Antd design pro V4项目,只需启动一次,无需再写一行代码! 代码归你掌控,无阻二次开发!
30+
31+ 前端页面,后端接口,路由,菜单全部自动对接,你只需要拷贝文档,修改配置,不需要写一行代码!!
32+
33+ 🎁 内置
1434
15- ## 多种登录方式
35+ ## 1. 多种登录方式
1636
1737![ ] ( http://cdn.pic.mtianyan.cn/blog_img/20201130234228.png )
1838
19- ## 内嵌自动dashboard,自动注册现有model count 数据。
39+ ## 2. 内嵌自动dashboard,自动注册现有model count 数据。
2040
2141![ ] ( http://cdn.pic.mtianyan.cn/blog_img/20201130234054.png )
2242
23- ## 全自动的列表展示,增删改查, 筛选,搜索,导出Excel
43+ ## 3. 全自动的列表展示,增删改查, 筛选,搜索,导出Excel
2444
2545![ ] ( http://cdn.pic.mtianyan.cn/blog_img/20201130234448.png )
2646
2747![ ] ( http://cdn.pic.mtianyan.cn/blog_img/20201130234525.png )
2848
29- ## django自带权限组支持,外键蓝点小标记pop支持
49+ ## 4. django自带权限组支持,外键蓝点小标记pop支持
3050
3151![ ] ( http://cdn.pic.mtianyan.cn/blog_img/20201130234705.png )
3252
3353![ ] ( http://cdn.pic.mtianyan.cn/blog_img/20201130234753.png )
3454
35- ## 基于Model定义的表单字段级别自动验证
55+ ## 5. 基于Model定义的表单字段级别自动验证
3656
3757![ ] ( http://cdn.pic.mtianyan.cn/blog_img/20201010194705.png )
3858
39- ## 内嵌富文本支持,仅需把字段定义为` richTextField ` ,无需任何额外集成。
59+ ## 6. 内嵌富文本支持,仅需把字段定义为` richTextField ` ,无需任何额外集成。
4060
4161![ ] ( http://cdn.pic.mtianyan.cn/blog_img/20201010192630.png )
4262
43- 交流反馈群: 304094780
44-
45- 只需要设计好Model,在settings中配置需要生成哪些model,运行一条命令` python manage.py init_admin && python manage.py gen_all `
46-
47- > 后端代码生成一个django app到项目目录, 只需注册一下, 无需再写一行代码! 代码归你掌控,无阻二次开发!
48- > 前端生成一个完整的Antd design pro V4项目,只需启动一次,无需再写一行代码! 代码归你掌控,无阻二次开发!
49-
50- 前端页面,后端接口,路由,菜单全部自动对接。
51-
52- # 快速上手 (已有项目可从第二步开始,注意修改GEN_APPS 变量为自己需要生成的app列表)
63+ # 快速上手
5364
54- > 如有问题,可对比demos下tyadmin_demo_finish项目找自己的不同
65+ > 已有项目可从第二步开始,注意修改GEN_APPS 变量为自己需要生成的app列表
66+ > 如有问题,可对比demos下tyadmin_demo_finish项目找自己的不同,以及查看[ QA环节] ( #QA环节 )
5567
5668### 1. 下载demo项目安装依赖
5769
@@ -64,46 +76,76 @@ pip install -r requirement.txt
6476
6577### 2. 安装tyadmin-api-cli并注册tyadmin-api-cli
6678
67- ```
79+ ``` diff
6880pip install tyadmin-api-cli
6981
7082INSTALLED_APPS = [
83+ + 'captcha',
84+ + 'tyadmin_api_cli',
85+ ]
86+
87+ + TY_ADMIN_CONFIG = {
88+ + 'GEN_APPS': ['demo']
89+ + }
90+
91+ # 方便拷贝
92+
7193 'captcha',
7294 'tyadmin_api_cli',
73- ]
7495
7596TY_ADMIN_CONFIG = {
7697 'GEN_APPS': ['demo']
7798}
7899```
79100
80- GEN_APPS: 填写你想要生成的app列表。
101+ GEN_APPS: 填写你想要生成的app列表。
81102
82103### 3. 初始化 后端app(tyadmin_api) + 前端项目(tyadmin) && 生成后端自动化的视图,过滤器,路由,序列器 + 前端页面及路由菜单
83104
105+ 生成后端页面依赖,需安装Node.js -> https://www.runoob.com/nodejs/nodejs-install-setup.html
106+
107+ > 安装Node.js 10以上,推荐安装版本Latest LTS Version: 12.19.0
108+
84109```
85- python manage.py init_admin && python manage.py gen_all
110+ python manage.py init_admin && python manage.py gen_all && cd tyadmin && npm install && npm run build
86111```
87112
88- ### 5. 注册生成出的app
113+ > 耐心等待一会,build 会输出 前端页面到templates文件夹,生成前端js,css 等到static文件夹
114+
115+ ### 5. 注册生成出的django app
89116
90117``` diff
91118INSTALLED_APPS = [
92119 'captcha',
93120 'tyadmin_api_cli',
94121+ 'tyadmin_api'
95122]
123+
124+ # 方便拷贝
125+
126+ 'tyadmin_api'
96127```
97128
98- ### 6. 注册路由
129+ ### 6. 注册首页路由,api路由
99130
100- demos/tyadmin_demo_complete /tyadmin_demo/urls.py
131+ . /tyadmin_demo/urls.py
101132
102- ```
103- path('api/xadmin/v1/', include('tyadmin_api.urls')),
133+ ``` diff
134+ + from tyadmin_api.views import AdminIndexView
135+
136+ urlpatterns = [
137+ + re_path('^xadmin/.*', AdminIndexView.as_view()),
138+ + path('api/xadmin/v1/', include('tyadmin_api.urls')),
139+ ]
140+
141+ # 方便拷贝
142+ from tyadmin_api.views import AdminIndexView
143+
144+ re_path('^xadmin/.*', AdminIndexView.as_view()),
145+ path('api/xadmin/v1/', include('tyadmin_api.urls')),
104146```
105147
106- ### 7. 运行后端项目,运行前端项目
148+ ### 7. 运行项目
107149
108150```
109151python manage.py makemigrations
@@ -112,19 +154,92 @@ python manage.py createsuperuser # 创建一个可以登入后台的用户
112154python manage.py runserver # 默认运行在8000端口
113155```
114156
115- 安装Node.js -> https ://www.runoob.com/nodejs/nodejs-install-setup.html
157+ 访问 http ://127.0.0.1:8000/xadmin/ 输入刚才创建的用户名密码登录
116158
117- > 安装Node.js 10以上,推荐安装版本Latest LTS Version: 12.19.0
159+ 至此大功告成!
160+
161+ > 如果没有成功看到页面,请查看QA部分
162+
163+ # QA环节
164+
165+ ## 0. ` TemplateDoesNotExist at /xadmin/ TyAdmin/index.html `
166+
167+ settings.py 中配置templates 路径
168+
169+ ``` diff
170+ TEMPLATES = [
171+ {
172+ 'BACKEND': 'django.template.backends.django.DjangoTemplates',
173+ - 'DIRS': [],
174+ + 'DIRS': [os.path.join(BASE_DIR, 'templates')],
175+ ```
176+ ## 1. 卡在loading页面,一直无法登陆
177+
178+ settings.py 中配置static 路径
179+
180+ ```
181+ if DEBUG:
182+ STATICFILES_DIRS = [
183+ os.path.join(BASE_DIR, "static"),
184+ ]
185+ else:
186+ STATIC_ROOT = os.path.join(BASE_DIR, 'static')
187+ ```
188+
189+ ## 2. 图片没有正常显示
190+
191+ urls.py
192+
193+ ```
194+ from django.views.static import serve
195+
196+ urlpatterns = [
197+ re_path('media/(?P<path>.*)', serve, {"document_root": settings.MEDIA_ROOT}),
198+ ]
199+ ```
200+
201+ ## 3. 当项目新增了model,我该如何为新model生成前端页面+后端接口
202+
203+ ```
204+ +TY_ADMIN_CONFIG = {
205+ + 'GEN_APPS': ['demo','new_app']
206+ +}
207+ ```
208+ 如上GEN_APPS 中添加新app的name,然后运行下面命令
209+
210+ ```
211+ python manage.py gen_all && cd tyadmin && npm run build
212+ ```
213+
214+ ## 4. 如何运行生成的前端独立项目
118215
119216```
120217cd tyadmin
121218npm install
122219npm run start:dev # 默认会运行在8001端口
123220```
124221
125- 访问http://127.0.0.1:8001/xadmin/ 输入刚才创建的用户名密码登录查看系统
222+ 请确认django运行在8000端口,访问http://127.0.0.1:8001/xadmin/
223+
224+ # 🤝 贡献者名单:
225+
226+ [ longyn] ( https://github.com/longyn )
126227
127- # 附录(随意了解一下即可)
228+ # 🤟 打赏
229+
230+ 很高兴我的项目代码或许对你有帮助,请我吃包辣条或喝瓶可乐吧!
231+
232+ 微信打赏:
233+
234+ ![ mark] ( http://myphoto.mtianyan.cn/blog/180302/i52eHgilfD.png?imageslim )
235+
236+ # 🔑 License
237+
238+ [ MIT] ( https://github.com/go-admin-team/go-admin/blob/master/LICENSE.md )
239+
240+ Copyright (c) 2020 mtianyan
241+
242+ # 附录
128243
129244## model->前端对应关系
130245
@@ -143,9 +258,13 @@ npm run start:dev # 默认会运行在8001端口
143258| DateField| Date选择器|
144259| DateTimeField| DateTime选择器|
145260
146- ### ForeignKey自动生成下拉单选菜单, ManyToManyField自动生成下拉多选菜单
261+ ### ForeignKey自动生成下拉单选菜单, ManyToManyField自动生成下拉多选菜单或穿梭框
147262
263+ ![ ] ( http://cdn.pic.mtianyan.cn/blog_img/20201202214922.png )
148264
265+ ![ ] ( http://cdn.pic.mtianyan.cn/blog_img/20201202214936.png )
266+
267+ ![ ] ( http://cdn.pic.mtianyan.cn/blog_img/20201202214957.png )
149268
150269### richTextField 自动生成富文本
151270
@@ -230,4 +349,3 @@ last_login = DateTimeField(verbose_name="上次登录")
230349![ ] ( http://cdn.pic.mtianyan.cn/blog_img/20201010195116.png )
231350
232351
233-
0 commit comments