使用Django ORM作为独立的

时间:2009-06-02 02:58:16

标签: python django postgresql orm

  

可能重复:
  Use only some parts of Django?
  Using only the DB part of Django

我想将Django ORM作为独立使用。尽管花了一个小时搜索谷歌,我仍然有几个问题:

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

我想最简单的事情就是有人发布一个基本模板或演绎过程,澄清文件的组织,例如:

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,如果它改变了有关命令行参数的任何内容。)。

1 个答案:

答案 0 :(得分:30)

好吧我确定了,并且会为试图做同样事情的人发布解决方案。

此解决方案假定您要创建新模型。

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

__init__.py
myScript.py
settings.py

显然“myScript.py”可以命名为。

接下来,为模型创建一个目录。

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

在此目录中创建2个文件:

__init__.py
models.py

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

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)

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

manage.py sql MyApp