Python 使用Django ORM作为独立的

Python 使用Django ORM作为独立的,python,django,postgresql,orm,Python,Django,Postgresql,Orm,可能的重复项: 我想使用Django ORM作为独立的。尽管在谷歌搜索了一个小时,我仍然有几个问题: 是否需要我使用setting.py、/myApp/directory和modules.py文件设置Python项目 我可以创建一个新的models.py并运行syncdb,让它自动设置表和关系,还是只能使用现有Django项目中的模型 关于PYTHONPATH,似乎有很多问题。如果您不调用现有模型,是否需要这样做 我想最简单的方法是,有人发布一个基本模板或流程演练,澄清文件的组织结构,例

可能的重复项:

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

  • 是否需要我使用setting.py、/myApp/directory和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。)。

啊,好的,我找到了答案,并将为任何试图做同样事情的人发布解决方案

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

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

__init__.py
myScript.py
settings.py
显然,“myScript.py”可以命名为任何名称

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

我们将把我们的模型目录命名为“myApp”,但要知道这是项目中的一个普通Django应用程序,因此,请根据您正在编写的模型集合适当地命名它

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

__init__.py
models.py
您需要从现有Django项目或从Django安装路径获取manage.py的副本:

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 *
    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
from django.db import models

class MyModel(models.Model):
     field = models.CharField(max_length=255)
并将其添加到settings.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 *
    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
from django.db import models

class MyModel(models.Model):
     field = models.CharField(max_length=255)
最后是您的myApp/models.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 *
    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
from django.db import models

class MyModel(models.Model):
     field = models.CharField(max_length=255)
就这样。现在,要让Django管理您的数据库,请在命令提示符下导航到/standalone目录并运行:

manage.py sql MyApp

威廉·布伦德尔(William Brendel)链接的问题有最好的答案,但也有更多的讨论。我想知道你是如何“搜索谷歌1小时”并根据范加尔(Van Gale)和威廉·布伦德尔(William Brendel)的评论指出问题的。这不是一个“完全重复的问题”——虽然那篇文章帮助我找到了答案,但它并不是我想要的。我希望关闭为“完全重复”不会改变我下面的解决方案的可搜索性,因为它更加彻底,以及如何创建在其他任何地方都不会被转换的模型。Becominguru:因为我所有的搜索都特定于使用Django的ORM。我没有想到搜索像如何使用parts Django这样通用的东西,我已经创建了一个模板Django项目,允许您这样做。请更新新的或不同的信息。请将您的答案添加到该版本的问题中。在我的情况下,需要它工作(python2.7),我需要将
(“myApp”)
更改为
(“myApp”),)
,我还需要将顶级目录附加到
sys.path
。此外,
settings.py
可以为空(对我有效)-无需复制连接信息。如果在
settings.py.configure()中提供所有相同的值,那么
settings.py
有什么意义?