【发布时间】:2009-07-30 13:58:56
【问题描述】:
最近,我越来越熟悉 Django。我有一个正在处理的新项目,它将使用 Python 作为桌面应用程序。是否可以在桌面应用程序中使用 Django ORM?还是我应该选择SQLAlchemy 之类的东西?
【问题讨论】:
-
如果您想在桌面应用程序中使用管理员网络应用程序功能,另请参阅 stackoverflow.com/questions/1317899/…。
最近,我越来越熟悉 Django。我有一个正在处理的新项目,它将使用 Python 作为桌面应用程序。是否可以在桌面应用程序中使用 Django ORM?还是我应该选择SQLAlchemy 之类的东西?
【问题讨论】:
Django 人是明智的人,他们具有解耦的哲学。所以是的,理论上你应该完全能够在独立的应用程序中使用 Django 的 ORM。
这是我找到的一份指南:Django ORM as a standalone component。
【讨论】:
如果您更喜欢类似 Django 的语法,我建议您使用 SQLAlchemy 和它上面的声明层,例如 Elixir。
【讨论】:
是的。麻省理工学院媒体实验室的常识计算项目为 ConceptNet 做这件事, 语义网络。你可以在这里获取源码:http://pypi.python.org/pypi/ConceptNet/4.0b3
【讨论】:
peewee ORM 有一个 django 用户应该熟悉的声明式语法,并且可以作为独立的使用。这里是项目docs
【讨论】:
我建议另一个用于桌面应用程序的 ORM,可能是 SQLAlchemy 或 SQLObject。 我可以使用 django ORM,但我认为如果您要单独使用它们,其他 ORM 会更好。
【讨论】:
Camelot 似乎很有希望,如果你想使用 DB 来做 Python 桌面应用程序。它虽然使用 SQLAlchemy。还没试过。
【讨论】:
这是可能的,并记录在in the docs here:
你需要像下面这样设置 django:
import django
from django.conf import settings
from myapp import myapp_defaults
settings.configure(default_settings=myapp_defaults, DEBUG=True)
django.setup()
# Now this script or any imported module can use any part of Django it needs.
from myapp import models
【讨论】: