django共享库/类

时间:2010-12-18 20:06:09

标签: python django

django的新手,正在寻找建立我的共享库的地方的建议。我正在计划创建我想在项目中的所有应用程序中使用的类。放置它们的最佳位置在哪里?

e.x抽象模型

的问候,

4 个答案:

答案 0 :(得分:14)

我们通常将项目设置为:

/site/
    __init__.py
    manage.py
    settings.py
    urls.py
    /apps/
        __init__.py
        /appA/
            __init__.py
        /appB/
            __init__.py
    /lib/
        __init__.py
        /django-lib/
            __init__.py
        /shared-lib/
            __init__.py

只需确保您的站点目录位于您的python路径上:

import sys
sys.path.append('/path/to/site/')

此外,确保站点,应用程序和lib中存在init.py,以便可以使用点表示法导入将它们视为模块(import site.lib.shared-lib)

编辑:

在回答有关python路径的问题时,这一切都与“manage.py”或等效文件所在的位置有关。如果它位于/ site /目录下(在apps和lib旁边),则PYTHONPATH应该没问题。

您需要确保每个目录都包含一个名为__init__.py的空文件。这告诉Python将该目录视为模块。请参阅上面新的和改进的ASCII艺术。

答案 1 :(得分:9)

我从Two Scoops of Django学到的是,您将共享代码放在您自己创建的名为core的Django应用程序中。

使用core应用程序与您从其他应用程序交叉使用类的方式类似。

要了解更多信息,请转到标题为“那些随机公用事业怎么样?”的书的第28章。

答案 2 :(得分:0)

如果您想要,可以在PYTHON_PATH中导入它们。

答案 3 :(得分:0)

如果共享库也将在其他项目中使用,您可以使用distutils制作安装程序。 但如果只是项目中的应用程序,你可以采取AntonioP的答案。

请记住,当您运行django项目时,项目的根目录(包含manage.py的文件夹)始终位于PYTHON_PATH中,因此您可以创建文件夹depsdependencies或{{ 1}}或您喜欢的任何包含共享库的内容。