【问题标题】:Django packaging project with multiple apps具有多个应用程序的 Django 打包项目
【发布时间】:2015-07-09 06:56:39
【问题描述】:

我正在尝试打包我的 Django 项目,但没有成功。我的项目如下所示:

dsbg/
  manage.py

  dsbg/
    __init__.py
    urls.py
    wsgi.py

  app1/
    __init__.py
    models.py
    views.py
    urls.py

  app2/
    __init__.py
    models.py
    views.py
    urls.py

  settings/
    base.py
    local.py
    prod.py

  static/
        app1/
            images/
                background.gif
            style.css

  templates/
        home.html
        app1/
            detail.html
            index.html
        app2/
            detail.html
            index.html

我遵循了here 的程序,但我不确定我做的是否正确(他们的示例只有一个应用程序:民意调查)。我做了以下事情:

  • 在新目录 django-dsbg 中移动应用程序 + 静态 + 模板目录(将 dsbg 和设置保留在根目录中)
  • 在 django-dsbg 中,创建 setup.py 文件,指定包文件(app1 和 app2)并创建 MANIFEST.in 以包含静态和模板目录。
  • 在 django-dsbg 中,运行:

     python setup.py sdist
    
  • 在django-dsbg的父目录下,运行:

     pip install --user django-dsbg/dist/django-dsbg-0.1.tar.gz
    

之后,项目如下所示:

dsbg/
  manage.py

  settings/
    base.py
    local.py
    prod.py

  dsbg/
    __init__.py
    urls.py
    wsgi.py

  django-dsbg/
    LICENSE
    MANIFEST.in
    README.rst
    app1/
       models.py
       views.py
       urls.py
    app2/
       models.py
       views.py
       urls.py
    templates/
       home.html
       app1/
         ...
       app2/
         ...
    static/
       ...

现在在根目录(顶部 dsbg),我尝试启动服务器:

python manage.py runserver --settings=settings.local

服务器启动良好,但是当指向本地主机时,浏览器显示:

TemplateDoesNotExist at / home.html. 
...
Python Path: ['/home/patrick/django/dsbg/dsbg',
              ...
              '/home/patrick/.local/lib/python2.7/site-packages']

这个 home.html 文件位于 django-dsbg/templates。 dsbg/dsbg 和 .local/lib/python2.7/site-packages 目录都不包含 home.html。后者包含我所有的应用程序,但不包含静态或模板目录。

我做错了什么?有人能帮我吗? 任何帮助是极大的赞赏。 帕特里克

【问题讨论】:

  • 你有想过这个吗?

标签: django packaging


【解决方案1】:

您需要模板的绝对路径,无论应用程序位于何处,您都可以

TEMPLATES_DIRS = ('/home/user/dsbg/django-dsbg/templates', )

# Django 1.8 +
Dirs = ['templates']

【讨论】:

  • 我试过了,结果一样。我怀疑我的新项目结构可能有问题。您认为可以吗(设置、dsbg 和 django-dsbg 在同一级别)?注意:在我尝试打包我的项目之前,它与原始结构一起工作;我的意思是找到模板没有问题。
猜你喜欢
  • 2017-09-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-26
  • 1970-01-01
  • 2021-06-04
  • 2019-03-18
  • 1970-01-01
相关资源
最近更新 更多