Dust8 的博客

读书百遍其义自见

0%

Django 使用旧有的数据库

有个项目是用其他语言写的接口, 需要快速开发出后台管理页面, 就选用了 django. 按照下面的方法就可以在几分钟内开发完成.

生成模型文件

这个官网有教程, 可以点击下面的参考链接看. 只需要运行一条命令就可以生成模型文件

1
python manage.py inspectdb > models.py

生成后台管理文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
# lib/gen_admin.py
import inspect
import os
from pathlib import Path
import sys

import django


def get_classes(arg):
"""找出模块里所有的类"""
classes = []

clsmembers = inspect.getmembers(arg, inspect.isclass)
for (_, value) in clsmembers:
classes.append(value)

return classes


def gen_admin(model):
"""根据模型生成 admin.py 的内容"""
temp = f"""
@admin.register({model.__name__})
class {model.__name__}Admin(admin.ModelAdmin):
list_display = ('{"','".join((field.name for field in model._meta.fields))}')
"""
return temp


def gen_admins(models):
result = ""
for model in models:
result += gen_admin(model)
return result


def main():
BASE_DIR = Path(__file__).resolve(strict=True).parent.parent
sys.path.append(str(BASE_DIR))

# 改成你的配置
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "dazhong.settings")
django.setup()

# 要生成的模型
import areas

classes = get_classes(areas.models)
result = gen_admins(classes)
print(result)


if __name__ == "__main__":
main()

参考链接