我有一个带有命令行界面的小程序,该程序使用了许多具有全面实现的python类。我想废弃命令行界面并将应用程序包装在Django应用程序中,但我只是在学习Django,而且我不熟悉这些约定。
我有许多类,内存存储结构,getter / setter等,我想将它们转换为Django模型,以便我可以将它们保存到数据库并在django app周围与它们进行交互。做这样的事情有一般的方法吗?
我是否应该继承现有类中的django.db.models.Model类并将其设置为直接交互?或者是否有更好,更通用/传统的方式来做到这一点?
我希望能够在其他应用程序中使用所有这些代码,而不是necesarilly Django,所以我不想以一种只能使用Django的方式修改我现有的类。我想分别创建模型,然后是一种中间人类来管理实际的内存类与django模型类的交互,但这似乎是我在扩展/修改时需要更改的地方代码。
提前感谢您提供任何帮助......
答案 0 :(得分:2)
就个人而言,我会修改你现有的类来扩展models.Model
并维护这些类的不同版本,以便在Django之外使用。
这将使您的课程在各自的环境中保持精益和可维护。
您还可以创建一个新类,通过多重继承扩展models.Model
和您的python模型。但是,这将导致相同数据的重复字段。
如果您愿意,可以将示例模型发布为新问题,并在此链接标记我,我可以帮助您转换它。
答案 1 :(得分:1)
最大的django优势之一是它的ORM,如果你想要导入我建议你使用它,是的你可能需要重写与数据库交互的部分,但是如果你已经在Models文件夹中隔离了这个函数〜课程,修改不会很难
虽然在你的情况下我会建议检查Tornado / Aiohttp因为看起来你只是想为你的功能创建一个界面