Django 部署的文件映射

File mapping for Django deployment

我按照官方 Django 网站上的教程打造了我的第一个 Django 网站,途中进行了大量谷歌搜索。该站点允许我上传图像(存储在“media”文件夹下)并显示它们。它在 Firefox 上本地运行良好。现在我被困在如何部署它上。我主要关注instructions on flailingmonkey.com to try to setup the production environment on justhost. I modified the settings and reorganized folders according to this page by the author of "Two Scoops of Django"。我的本地文件结构看起来像这样。

C:\django_projects
    +---< my_project >
    |    +---< my_project >
    |    |    |--- settings.py
    |    |    |--- urls.py
    |    |    |--- wsgi.py
    |    |    |--- __init__.py
    |    |
    |    +---< my_app >
    |         +---< static >
    |         |    +---< my_app >
    |         |         +---< css >
    |         |         |    |--- style.css
    |         |         +---< script >
    |         |              |--- my_javascript.js
    |         +---< templates >
    |         +---< migrations >
    |         +---< __pycache__ >
    |         |--- admin.py
    |         |--- urls.py
    |         |--- models.py
    |         |--- views.py
    |         |--- __init__.py
    |    
    +---\assets
    |    +---< admin >
    |    +---< my_app >
    |         +---< css >
    |         |    |--- style.css
    |         +---< script >
    |              |--- my_javascript.js
    |
    +---\static
    |
    +---\media

据我所知,我应该在部署前使用“collectstatic”来收集所有静态文件(css,脚本),我已经执行了(如反映在文件夹结构)。

我上一次做任何网络开发是大约 10 年前,我记得过去我要做的就是把所有东西都扔到 public_html文件夹。对于 Django dev,有什么不同吗?我应该 ftp 四个文件夹(即 'my_project', 'assets', '上面的static', 'media') 变成public_html到远程服务器?或者我应该 ftp 整个“django_projects”文件夹?我是否需要将包含 settings.py 的 'my_project' 放置在 '[ 之外的某处=71=]'? “assets”和“media”文件夹怎么样?

flailingmonkey.com 上的说明没有明确说明项目文件夹和应用程序文件夹的位置。我已经盲目地尝试了 3 天,并且一直在与未提供的静态文件作斗争。我没有尝试将所有内容都放在 public_html 下,因为在我看来,将包含数据库凭据的设置文件放在那里是一种不安全的做法。请指教

对于你们中的大多数人来说,这可能是一个愚蠢的问题。感谢您耐心看完这么啰嗦的问题。我正在努力使这一点尽可能清楚。

P.S。除了按照说明编写 .htaccessmy_app.fcgi 文件外,我还可以考虑更改 'DEBUG settings.py 中的 ' 到 'False'。部署还缺少什么吗?

您不会将 django 项目放入 public_html。通常,Django 会与 mod_wsgi (Apache) 或 uWSGI (nginx) 对话,并使用 wsgi 协议将动态内容返回给服务器进程。静态内容(图像、javascript 等)通常映射到服务器端目录。

我建议阅读 Django 项目页面上的部署页面:https://docs.djangoproject.com/en/1.8/howto/deployment/wsgi/modwsgi/