您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Django项目层次/组织

5b51 2022/1/14 8:23:27 python 字数 4616 阅读 574 来源 www.jb51.cc/python

我是Django的新手并开始一个项目,我想以正确的方式做到这一点. 我想知道您认为组织项目的最佳做法. 以下是我的一些问题: >如何将静态资源与Python代码分开,以便我不会浪费时间通过Django处理静态内容? >由于应用程序是可重用的模块,它们对项目来说并不紧张,所以它们应该位于项目目录中,还是位于包含所有“自制”应用程序的另一个目录中? >模板是否被视为静态或动态内容? 这是我当前的文件层

概述

我想知道您认为组织项目的最佳做法.

以下是我的一些问题:

>如何将静态资源与Python代码分开,以便我不会浪费时间通过Django处理静态内容
>由于应用程序是可重用的模块,它们对项目来说并不紧张,所以它们应该位于项目目录中,还是位于包含所有“自制”应用程序的另一个目录中?
>模板是否被视为静态或动态内容

这是我当前的文件层次结构:

webapps/
    myproject/
        apache/
        bin/
        lib/
        templates/
            app1/
            app2/
        src/
            app1/
            app2/
            __init.py
            settings.py
            urls.py
            manage.py
        myproject.wsgi
    admin/
    static/
        css/
        img/

你怎么看?
什么会更好?

谢谢!

以下仅适用于django 1.3.

在app目录中:

...
app1/
    static/
        app1/
    templates/
        app1/
    models.py
    ...
    views.py

如果您使用新的django.contrib.staticfiles应用程序,您的设置可能如下所示:

MEDIA_ROOT = path.join(ROOT_PATH,'uploaded_media/')
MEDIA_URL = '/uploaded_media/'
# static content is collected here,and served from here,but don't add stuff manually here! add to staticfiles_dirs
STATIC_ROOT = path.join(ROOT_PATH,'collected_static/')
ADMIN_MEDIA_PREFIX = '/static/admin/'
STATIC_URL = '/static/'
# Additional locations of static files
STATICFILES_DIRS = (
    path.join(ROOT_PATH,'src/extra_static/'),)

STATICFILES_FINDERS = (
    'django.contrib.staticfiles.finders.FileSystemFinder','django.contrib.staticfiles.finders.AppDirectoriesFinder',)

同样,您的模板可以直接从INSTALLED_APP加载:

TEMPLATE_LOADERS = (
    'django.template.loaders.filesystem.Loader','django.template.loaders.app_directories.Loader'
)

TEMPLATE_DIRS = (
    path.join(ROOT_PATH,'src/templates/'),)

上述两种策略意??味着模板和静态内容可以存在于其特定的应用程序目录中.在开发中,使用contrib.staticfiles,可以直接从应用程序文件夹中提供静态内容.在生产中,有一个管理命令可以将所有应用程序目录静态内容收集到/ path / to / project / gather_static /,您可以将Web服务器指向该目录以提供静态内容.

对于预打包的库,使用virtualenv和pip是一个好主意.否则,我喜欢将库保存在项目根目录下的lib目录中.它使得引用源,模板和静态内容非常方便,而不是安装到站点包(特别是在不使用virtualenv时).

因此,重新安排您的项目结构:

webapps/
    myproject/
        apache/
        bin/
        lib/
        collected_static/
        uploaded_media/
        myproject.wsgi
        src/
            templates/ # lib template overrides and site wide templates
                base.html
                lib_1/
                    nav.html
            extra_static/
                lib_1/ # libs that dont support django 1.3 static
                    js/
                    css/
            settings.py
            settingslocal.py # keep developer specific settings here
            urls.py
            manage.py
            app1/
                __init.py
                static/
                    app1/
                        js/
                        css/
                templates/
                    app1/

总结

以上是编程之家为你收集整理的Django项目层次/组织全部内容,希望文章能够帮你解决Django项目层次/组织所遇到的程序开发问题。


如果您也喜欢它,动动您的小指点个赞吧

除非注明,文章均由 laddyq.com 整理发布,欢迎转载。

转载请注明:
链接:http://laddyq.com
来源:laddyq.com
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


联系我
置顶