求 Django 框架的解决方案。 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
brucecobb
V2EX    Python

求 Django 框架的解决方案。

  •  
  •   brucecobb 2018-03-21 18:07:21 +08:00 3613 次点击
    这是一个创建于 2813 天前的主题,其中的信息可能已经有所发展或是发生改变。
    目前有的需求:
    1.要求使用 django 框架,管理数据库某些(一部分静态资源链接等)已经存在的表的数据。
    2.能对数据进行增删改查。
    3.图片链接要能显示图片。
    4.随着公司数据量的增大,可能能随时增加新的数据表进行管理。

    目前的思路:
    1.使用 inspectdb 命令反映射出需要管理的数据表,并添加到模型类
    2.使用 django 自带的后台管理系统 admin 进行数据管理。

    目前遇到的困难:
    1. inspectdb 是全部映射处理,因为大部分表是不需要管理爹,所以需要把管理的表手动添加到模型类,如果随着管理表的增多,怎么动态增加模型类?
    2.在 django 中数据表的模型类的数量是固定的,如果有一张表不需要管理了,怎样才能动态的删除这个模型类?
    3.还有没有别的思路?因为目前选择 django 是因为有 admin 这个后台管理的优点,如果有别的解决方案,很乐意聆听。
    11 条回复    2018-03-22 14:12:16 +08:00
    slate
        1
    slate  
       2018-03-21 18:58:59 +08:00 via Android
    个人感觉 inspectdb,所有映射都到 model 没什么影响性能的,新增或者删除表时,重新 inspeectdb 到另一个文件,两个文件一对比 diff 一下,该删的删该加的加
    brucecobb
        2
    brucecobb  
    OP
       2018-03-21 19:13:23 +08:00
    @slate 感谢你的回复,但是重新 inspectdb 后需要重新 migrate,项目在运行的时候好像是办不到的。
    xpresslink
        3
    xpresslink  
       2018-03-21 19:19:51 +08:00
    @brucecobb
    不用,只要指定 table_name, 然后在 content_type 表里自己插个记录。
    ZeroW
        4
    ZeroW  
       2018-03-21 19:24:24 +08:00 via Android
    逆向生成的 model 文件里面会默认添加一个 manage 属性,而且是 false。你不改的话生成的 model 是不会对数据库进行修改操作的,即使你 migrate 也不会产生新表。如果要用 django 操作表,把 manager 改成 true 或删掉都可以。
    brucecobb
        5
    brucecobb  
    OP
       2018-03-21 19:30:22 +08:00
    @zerowang317 你好,感谢你的回复,我刚刚试了一下 python manage.py inspectdb,并没有看见 manger 属性。
    brucecobb
        6
    brucecobb  
    OP
       2018-03-21 19:34:00 +08:00
    @xpresslink 你好,感谢你的回复,我还是不明白 diff 是在干什么,是 git 中的 diff 吗?而且在项目运行的过程中能修改代码吗?
    so1n
        7
    so1n  
       2018-03-21 20:53:03 +08:00
    有个 xadmin 更强大。。
    ksupertu
        8
    ksupertu  
       2018-03-21 21:38:45 +08:00 via iPhone
    inspect db 出来的那个文件下面有个

    class meta:
    Manage=False
    大概是这个,爪机无力,明天在给你补充下;这个意思就是让 django 不管理这张表,migrate 的时候不做任何操作,可以听楼上的用 xadmin,更漂亮点还带导入导出功能,djangosuite 长期没人维护的感觉,不想后台出现这张表的话,admin.py 里不做 site.regesiter 你就看不到了
    brucecobb
        9
    brucecobb  
    OP
       2018-03-21 23:07:30 +08:00
    @ksupertu 非常感谢你的回复,明天我再试试,期待你的补充!
    xpresslink
        10
    xpresslink  
       2018-03-22 00:02:16 +08:00
    @brucecobb 有 个标准库叫 difflib 可以比较字符串或文本文件。

    >>> import difflib
    >>> dif=difflib.Differ()
    >>> list(dif.compare('abc', 'abbc'))
    [' a', ' b', '+ b', ' c']
    >>>
    awli
        11
    awli  
       2018-03-22 14:12:16 +08:00
    您好, 怎么根据表内的图片链接显示多张图片,并且可以显示缩略图呢?
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3999 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 28ms UTC 00:10 PVG 08:10 LAX 16:10 JFK 19:10
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86