【问题标题】:Python app to django web appPython 应用程序到 django 网络应用程序
【发布时间】:2011-05-10 16:35:37
【问题描述】:

我编写了一些 python 代码来完成一项任务。目前,我将 4-5 个类存储在单独的文件中。我现在想把这整个事情变成一个数据库支持的网络应用程序。我一直在阅读有关 Django 的教程,到目前为止,我的印象是我需要为我使用的每个“模型”手动指定字段及其类型。这对我来说有点令人惊讶,因为我期待某种 ORM 功能,它只会采用我已经定义的现有类,并以某种方式将它们映射到数据库中,以一种对我来说抽象的方式。

不是这样吗?我错过了什么吗?看来我需要指定文件“models.py”中的所有字段和类型。

好的,现在除了这些细节之外,有人对将面向对象的桌面应用程序迁移到 Web 应用程序的最佳方法有任何一般性提示吗?

谢谢!

【问题讨论】:

    标签: python django web-applications django-models


    【解决方案1】:

    Django 的 ORM:它将类映射到表。你还期待什么?但是,在使用它们之前,需要有某种方法来指定字段是什么,并且通过models.Model 类和各种models.Field 子类进行管理。您当然可以将您的类用作 mixins,以便在字段定义之上使用现有的业务逻辑。

    【讨论】:

    • 好吧,这有点荒谬。我正在使用一些相当复杂的类和一些使用自己的更复杂类的外部库。您是否建议我必须手动浏览每个类并将它们归结为由简单表和字段组成的数据库模式,而 ORM 不能为我做到这一点?如果属实,那将是非常不幸的。
    【解决方案2】:

    如果您正在考虑基于数据库后端的网络应用程序,您必须指定要存储的数据字段以及要存储的值的类型。

    有一个抽象可以自省 db 以将其转换为 django models.py 格式。但我不知道有任何内省 python 类并将任意数据存储到 db 中。那怎么行?现在,这些对象是否存储为泡菜?

    【讨论】:

      【解决方案3】:

      您将不得不检查输出,但您可以让 Django 通过一次性内省自动从现有数据库创建模型。

      从下面的链接中获取,您将在 settings.py 中设置您的数据库,然后调用

      python manage.py inspectdb
      

      这会将示例 models.py 文件转储到标准输出以供您检查。为了创建文件,只需重定向输出

      python manage.py inspectdb > models.py
      

      查看更多:

      http://docs.djangoproject.com/en/dev/howto/legacy-databases/?from=olddocs#auto-generate-the-models

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-01-05
        • 2012-12-14
        • 2011-02-01
        • 2016-01-24
        相关资源
        最近更新 更多