使用Django的ORM作为独立的

可能重复:
只使用Django的一些部分?
只使用Django的数据库部分

我想单独使用Django ORM。 尽pipe在谷歌search了一个小时,我仍然留下了几个问题:

  • 是否需要我使用setting.py,/ myApp /目录和modules.py文件来设置我的Python项目?
  • 我可以创build一个新的models.py并运行syncdb以自动设置表和关系,还是只能使用现有的Django项目中的模型?
  • 似乎有很多关于PYTHONPATH的问题。 如果你不打电话给现有的模型,这是需要的?

我猜最简单的事情是让别人发布一个基本的模板或stream程,澄清文件的组织结构,例如:

 db/ __init__.py settings.py myScript.py orm/ __init__.py models.py 

基本要领:

 # settings.py from django.conf import settings settings.configure( DATABASE_ENGINE = "postgresql_psycopg2", DATABASE_HOST = "localhost", DATABASE_NAME = "dbName", DATABASE_USER = "user", DATABASE_PASSWORD = "pass", DATABASE_PORT = "5432" ) # orm/models.py # ... # myScript.py # import models.. 

而且你是否需要运行如: django-admin.py inspectdb

(哦,我正在运行Windows,如果这改变了任何关于命令行参数)。

嗯,我想通了,并会发布解决scheme,任何人试图做同样的事情。

此解决scheme假定您要创build新的模型。

首先创build一个新的文件夹来存储您的文件。 我们将其称为“独立”。 在“standalone”中,创build以下文件:

 __init__.py myScript.py settings.py 

显然“myScript.py”可以被命名为任何东西。

接下来,为您的模型创build一个目录。

我们将我们的模型目录命名为“myApp”,但是要意识到这是一个正常的项目中的Django应用程序,因此,将它命名为您正在编写的模型的集合。

在这个目录下创build2个文件:

 __init__.py models.py 

您将需要从现有的Django项目中获取manage.py的副本,或者您可以从Django安装path获取副本:

 django\conf\project_template\manage.py 

将manage.py复制到/ standalone目录。 好吧,你现在应该有以下结构:

 \standAlone __init__.py myScript.py manage.py settings.py \myApp __init__.py models.py 

将以下内容添加到您的myScript.py文件中:

 # settings.py from django.conf import settings settings.configure( DATABASE_ENGINE = "postgresql_psycopg2", DATABASE_NAME = "myDatabase", DATABASE_USER = "myUsername", DATABASE_PASSWORD = "myPassword", DATABASE_HOST = "localhost", DATABASE_PORT = "5432", INSTALLED_APPS = ("myApp") ) from django.db import models from myApp.models import * 

并将其添加到您的settings.py文件中:

  DATABASE_ENGINE = "postgresql_psycopg2" DATABASE_NAME = "myDatabase" DATABASE_USER = "myUsername" DATABASE_PASSWORD = "myPassword" DATABASE_HOST = "localhost" DATABASE_PORT = "5432", INSTALLED_APPS = ("myApp") 

最后是你的myApp / models.py:

 # myApp/models.py from django.db import models class MyModel(models.Model): field = models.CharField(max_length=255) 

就是这样。 现在让Djangopipe理你的数据库,在命令提示符下导航到我们的/ standalone目录并运行:

 manage.py sql MyApp