Skip to content

Commit 702b4c1

Browse files
committed
v0.7.0版本发布
1 parent 7477cc2 commit 702b4c1

File tree

21 files changed

+1232
-1885
lines changed

21 files changed

+1232
-1885
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,3 +55,4 @@ Temporary Items
5555
/build/
5656
**/__pycache__/
5757
/tyadmin_api_cli.egg-info/
58+
**/node_modules

CHANGELOG.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,16 @@
1+
## 0.7.0 (2020-11-30)
2+
3+
#### Bug Fixes
4+
5+
- 重构页面生成代码,统一处理默认值等情况
6+
- 修复编码问题,创建文件夹问题
7+
- 优化生成命令提示信息
8+
9+
#### Features / Enhancement
10+
11+
- 添加demo项目,作为各种情况的测试项目
12+
- 更新README部分教程
13+
114
## v0.6.3 (2020-10-26)
215

316
#### Bug Fixes

README.md

Lines changed: 64 additions & 78 deletions
Original file line numberDiff line numberDiff line change
@@ -1,75 +1,106 @@
1-
# 基于Django Restful Framework 和 Antd Design Pro V4 类似Xadmin 的基于Models 的管理后台前后端生成工具
1+
# TyAdmin 基于Django Restful Framework 和 Antd Design Pro V4 的基于Models **No Code** 零代码零学习成本管理后台前后端生成工具
22

33
![](https://img.shields.io/pypi/v/tyadmin-api-cli)
44
![](https://img.shields.io/pypi/wheel/tyadmin-api-cli)
55

6-
更强大,更现代化,自定义度更高的Xadmin!!!
7-
自动生成前后端管理后台,神奇自动对接。免去普通增删改查,筛选,搜索功能开发。
6+
TyAdmin: 只需要花五分钟按着README中快速上手配置,无额外文档,无框架学习成本,零代码,全自动!更强大!更现代化!功能更多!
87

9-
交流反馈群: 304094780
8+
0. 自动生成前后端管理后台,页面接口神奇全自动对接。登录验证,修改密码,Dashboard数据统计。
9+
1. 一次拥有 **增删改查,筛选,搜索,数据全量导出,选择导出**
10+
2. 外键字段,多对多字段,富文本,文件,图片,django自带权限系统,
11+
3. 已兼容第三方 django-celery-beat 后台管理
12+
13+
## 多种登录方式
14+
15+
![](http://cdn.pic.mtianyan.cn/blog_img/20201130234228.png)
16+
17+
## 内嵌自动dashboard,自动注册现有model count 数据。
18+
19+
![](http://cdn.pic.mtianyan.cn/blog_img/20201130234054.png)
20+
21+
## 全自动的列表展示,增删改查, 筛选,搜索,导出Excel
22+
23+
![](http://cdn.pic.mtianyan.cn/blog_img/20201130234448.png)
24+
25+
![](http://cdn.pic.mtianyan.cn/blog_img/20201130234525.png)
26+
27+
## django自带权限组支持,外键蓝点小标记pop支持
28+
29+
![](http://cdn.pic.mtianyan.cn/blog_img/20201130234705.png)
30+
31+
![](http://cdn.pic.mtianyan.cn/blog_img/20201130234753.png)
32+
33+
## 基于Model定义的表单字段级别自动验证
34+
35+
![](http://cdn.pic.mtianyan.cn/blog_img/20201010194705.png)
36+
37+
## 内嵌富文本支持,仅需把字段定义为`richTextField`,无需任何额外集成。
38+
39+
![](http://cdn.pic.mtianyan.cn/blog_img/20201010192630.png)
1040

11-
只需要设计好Model,运行两条命令`python manage.py init_admin`,`python manage.py gen_all`
41+
交流反馈群: 304094780
1242

13-
>后端代码生成一个django app到项目目录, 代码归你掌控,无阻二次开发!
14-
>前端生成一个完整的Antd design pro V4项目,代码归你掌控,无阻二次开发!
43+
只需要设计好Model,在settings中配置需要生成哪些model,运行一条命令`python manage.py init_admin && python manage.py gen_all`
1544

16-
前端页面, 后端接口,路由,菜单全部自动对接。
45+
>后端代码生成一个django app到项目目录, 只需注册一下, 无需再写一行代码! 代码归你掌控,无阻二次开发!
46+
>前端生成一个完整的Antd design pro V4项目,只需启动一次,无需再写一行代码! 代码归你掌控,无阻二次开发!
1747
18-
已生成示例网站:
48+
前端页面,后端接口,路由,菜单全部自动对接。
1949

20-
1. https://imooc.funpython.cn/xadmin
50+
## 在线demo地址(待上线):
2151

22-
2. https://mooc.funpython.cn/xadmin
52+
>http://demo.funpython.cn
2353
24-
## demo项目快速上手
54+
# 快速上手 (已有项目可从第二步开始,注意修改GEN_APPS 变量为自己需要生成的app列表)
2555

56+
>如有问题,可对比demos下tyadmin_demo_finish项目找自己的不同
2657
27-
### 1. 获得一个还未拥有后台api界面的demo项目代码(已存在项目可直接从第二步开始):
58+
### 1. 下载demo项目安装依赖
2859

2960
```
30-
git clone https://github.com/mtianyan/cookiecutter-tyadmin-demo.git
61+
git clone https://github.com/mtianyan/tyadmin_api_cli.git
62+
cd tyadmin_api_cli/demos/tyadmin_demo_init
3163
# 安装项目 原本就需要的依赖
3264
pip install -r requirement.txt
3365
```
3466

35-
### 2. 安装tyadmin-api-cli
67+
### 2. 安装tyadmin-api-cli并注册tyadmin-api-cli
3668

3769
```
3870
pip install tyadmin-api-cli
39-
```
40-
41-
### 3. 注册tyadmin-api-cli
4271
43-
```
4472
INSTALLED_APPS = [
73+
'captcha',
4574
'tyadmin_api_cli',
4675
]
4776
4877
TY_ADMIN_CONFIG = {
49-
'GEN_APPS': ['users', 'article']
78+
'GEN_APPS': ['demo']
5079
}
5180
```
5281

53-
填写你想要生成的app列表。
82+
GEN_APPS: 填写你想要生成的app列表。
5483

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

5786
```
5887
python manage.py init_admin && python manage.py gen_all
5988
```
6089

6190
### 5. 注册生成出的app
6291

63-
```
92+
```diff
6493
INSTALLED_APPS = [
65-
'tyadmin_api_cli',
6694
'captcha',
67-
'tyadmin_api'
95+
'tyadmin_api_cli',
96+
+ 'tyadmin_api'
6897
]
6998
```
7099

71100
### 6. 注册路由
72101

102+
demos/tyadmin_demo_complete/tyadmin_demo/urls.py
103+
73104
```
74105
path('api/xadmin/v1/', include('tyadmin_api.urls')),
75106
```
@@ -79,6 +110,7 @@ INSTALLED_APPS = [
79110
```
80111
python manage.py makemigrations
81112
python manage.py migrate
113+
python manage.py createsuperuser # 创建一个可以登入后台的用户
82114
python manage.py runserver # 默认运行在8000端口
83115
```
84116

@@ -89,22 +121,12 @@ python manage.py runserver # 默认运行在8000端口
89121
```
90122
cd tyadmin
91123
npm install
92-
npm run start # 默认会运行在8001端口
124+
npm run start:dev # 默认会运行在8001端口
93125
```
94126

95-
访问http://127.0.0.1:8001/xadmin/
127+
访问http://127.0.0.1:8001/xadmin/ 输入刚才创建的用户名密码登录查看系统
96128

97-
## 内嵌自动dashboard,自动注册现有model count 数据。
98-
99-
![](http://cdn.pic.mtianyan.cn/blog_img/20201010184239.png)
100-
101-
## 全自动的列表展示,搜索,筛选功能。
102-
103-
![](http://cdn.pic.mtianyan.cn/blog_img/20201010192457.png)
104-
105-
## 内嵌富文本支持,仅需把字段定义为`richTextField`,无需任何额外集成。
106-
107-
![](http://cdn.pic.mtianyan.cn/blog_img/20201010192630.png)
129+
# 附录(随意了解一下即可)
108130

109131
## model->前端对应关系
110132

@@ -123,27 +145,9 @@ npm run start # 默认会运行在8001端口
123145
| DateField| Date选择器|
124146
| DateTimeField| DateTime选择器|
125147

126-
127-
128148
### ForeignKey自动生成下拉单选菜单, ManyToManyField自动生成下拉多选菜单
129149

130-
>指定`f'{MAIN_DISPLAY}__name'` 关联另一张表哪个字段用于table显示
131-
132-
```python
133-
course_org = ForeignKey(CourseOrg, verbose_name="所属机构",
134-
help_text=f'{MAIN_DISPLAY}__name')
135-
```
136150

137-
![](http://cdn.pic.mtianyan.cn/blog_img/20201010192310.png)
138-
139-
```
140-
labels = ManyToManyField("Label", verbose_name="课程拥有的label",
141-
help_text=f'{MAIN_DISPLAY}__title')
142-
```
143-
144-
![](http://cdn.pic.mtianyan.cn/blog_img/20201010194349.png)
145-
146-
![](http://cdn.pic.mtianyan.cn/blog_img/20201010194222.png)
147151

148152
### richTextField 自动生成富文本
149153

@@ -168,24 +172,20 @@ gender = CharField(verbose_name="性别",choices=GENDER_CHOICES)
168172
### ImageField 自动生成带预览的表单上传功能,列表页可选两种展示方式。
169173

170174
```python
171-
avatar = ImageField(verbose_name="头像", help_text=MAIN_AVATAR)
172-
image = ImageField(verbose_name="封面图", help_text=MAIN_PIC)
175+
avatar = ImageField(verbose_name="头像") # 变量名为avatar或logo的会自动为头像样式
176+
image = ImageField(verbose_name="封面图")
173177
```
174178

175179
![](http://cdn.pic.mtianyan.cn/blog_img/20201010191641.png)
176180

177-
头像样式 `MAIN_AVATAR`:
178-
179181
![](http://cdn.pic.mtianyan.cn/blog_img/20201010191917.png)
180182

181-
图片样式 `MAIN_PIC`:
182-
183183
![](http://cdn.pic.mtianyan.cn/blog_img/20201010191843.png)
184184

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

187187
```
188-
download = FileField(verbose_name="资源文件", max_length=100)
188+
download = FileField(verbose_name="资源文件")
189189
```
190190

191191
![](http://cdn.pic.mtianyan.cn/blog_img/20201010193041.png)
@@ -219,7 +219,7 @@ birthday = DateField(verbose_name="生日")
219219
```
220220
![](http://cdn.pic.mtianyan.cn/blog_img/20201010193614.png)
221221

222-
### DateTimeField 自动表单 DateTime 选择框时间范围筛选器。
222+
### DateTimeField 自动表单 DateTime 选择框时间范围筛选器。
223223

224224
```
225225
last_login = DateTimeField(verbose_name="上次登录")
@@ -231,19 +231,5 @@ last_login = DateTimeField(verbose_name="上次登录")
231231
232232
![](http://cdn.pic.mtianyan.cn/blog_img/20201010195116.png)
233233

234-
## 基于Model定义的表单字段级别自动验证
235-
236-
```
237-
title = CharField(max_length=255, verbose_name="课程标题", unique=True)
238-
```
239-
240-
![](http://cdn.pic.mtianyan.cn/blog_img/20201010194705.png)
241-
242-
## 轻松的后端自定义验证
243-
244-
```
245-
if xxx:
246-
raise ValidationError({"filed_name": ["错误提示"]})
247-
```
248234

249235

setup.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,13 @@ def package_files(directories):
1212
for (path, directories, filenames) in walk(item):
1313
for filename in filenames:
1414
paths.append(join('..', path, filename))
15-
print(paths)
15+
# print(paths)
1616
return paths
1717

1818

1919
setup(
2020
name="tyadmin_api_cli",
21-
version="0.6.3",
21+
version="0.7.0",
2222
keywords=("pip", "mtianyan", "xadmin", "Django", "Antd", "Antd Design Pro"),
2323
description="modern base on models django admin powered by Antd Design Pro",
2424
long_description="modern base on models django admin powered by Antd Design Pro",
@@ -37,5 +37,5 @@ def package_files(directories):
3737
])
3838
},
3939
platforms="any",
40-
install_requires=["django", "django-simple-captcha", "djangorestframework"]
40+
install_requires=["django", "django-simple-captcha", "djangorestframework", "demjson"]
4141
)
Lines changed: 84 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,84 @@
1-
[]
1+
2+
[
3+
{
4+
name: '首页',
5+
path: '/xadmin/index',
6+
icon: 'dashboard',
7+
component: './TyAdminBuiltIn/DashBoard'
8+
},
9+
{
10+
name: 'permission',
11+
icon: 'smile',
12+
path: '/xadmin/permission',
13+
component: './AutoGenPage/PermissionList',
14+
},{
15+
name: 'group',
16+
icon: 'smile',
17+
path: '/xadmin/group',
18+
component: './AutoGenPage/GroupList',
19+
},{
20+
name: '被外键关联-非必填',
21+
icon: 'smile',
22+
path: '/xadmin/demo_foreign_key',
23+
component: './AutoGenPage/DemoForeignKeyList',
24+
},{
25+
name: '被多对多关联',
26+
icon: 'smile',
27+
path: '/xadmin/tags',
28+
component: './AutoGenPage/TagsList',
29+
},{
30+
name: '被多对多关联',
31+
icon: 'smile',
32+
path: '/xadmin/category',
33+
component: './AutoGenPage/CategoryList',
34+
},{
35+
name: 'rich text demo',
36+
icon: 'smile',
37+
path: '/xadmin/rich_text_demo',
38+
component: './AutoGenPage/RichTextDemoList',
39+
},{
40+
name: '',
41+
icon: 'smile',
42+
path: '/xadmin/many_to_many_demo',
43+
component: './AutoGenPage/ManyToManyDemoList',
44+
},{
45+
name: '全部字段类型-choices',
46+
icon: 'smile',
47+
path: '/xadmin/demo_model_require',
48+
component: './AutoGenPage/DemoModelRequireList',
49+
},{
50+
name: '全部字段类型-必填',
51+
icon: 'smile',
52+
path: '/xadmin/demo_model',
53+
component: './AutoGenPage/DemoModelList',
54+
},{
55+
name: '全部字段类型-默认',
56+
icon: 'smile',
57+
path: '/xadmin/demo_default_model',
58+
component: './AutoGenPage/DemoDefaultModelList',
59+
},{
60+
name: '用户管理',
61+
icon: 'smile',
62+
path: '/xadmin/user_profile',
63+
component: './AutoGenPage/UserProfileList',
64+
}
65+
,{
66+
name: 'Tyadmin内置',
67+
icon: 'VideoCamera',
68+
path: '/xadmin/sys',
69+
routes: [
70+
{
71+
name: 'TyAdmin日志',
72+
icon: 'smile',
73+
path: '/xadmin/sys/ty_admin_sys_log',
74+
component: './TyAdminBuiltIn/TyAdminSysLogList'
75+
},
76+
{
77+
name: 'TyAdmin验证',
78+
icon: 'smile',
79+
path: '/xadmin/sys/ty_admin_email_verify_record',
80+
component: './TyAdminBuiltIn/TyAdminEmailVerifyRecordList'
81+
}
82+
]
83+
}]
84+

0 commit comments

Comments
 (0)