3

我是 Django 新手,需要了解文件结构。下面是我的 Django 项目的一个示例(缺少一些文件)

我的困惑与真实服务器上的生产以及我的文件结构之间的关系有关。

我有以下关于这个问题的问题,我认为如果回答这些问题将有助于我理解。

  1. 网络根在哪里?
  2. 如何阻止用户下载 settings.py?
  3. 这个结构好吗?

    project
      manage.py 
      templates [folder]
      myapp1 [folder]
       models.py
       views.py
      projectname [folder]
       urls.py
       settings.py
    
4

3 回答 3

5

没有网络根。Django 项目文件可以放置在任何地方,以便 Web 服务器在给定的 URL 上运行和提供服务。URL 与文件结构不对应。

Django永远不应该暴露在公众面前。您可以通过不向公众公开来阻止用户下载它。只能从网络访问静态媒体。

是的,你的结构没问题。这是推荐的新标准。

于 2012-12-07T21:59:00.793 回答
1

使用 mod_wsgi 您不需要声明 a Document Root,您只需提供 wsgi 文件的路径

来自文档的示例 apache mod_wsgi 配置:

WSGIScriptAlias / /path/to/mysite.com/mysite/wsgi.py
WSGIPythonPath /path/to/mysite.com

<Directory /path/to/mysite.com/mysite>
<Files wsgi.py>
Order deny,allow
Allow from all
</Files>
</Directory>

用户无法访问 settings.py apache 不提供它。确保debug=False它可以公开您的设置

您的结构是 1.4+ 的默认 django 结构

于 2012-12-07T21:57:59.483 回答
1

只是为了添加另一个视角,包含在 中的URLconfurls.py定义了您的 Web 根目录的虚拟文件系统(如果您愿意的话)。由您的 URLconf 方案将整个 URL 类路由到您的视图,从而生成动态页面。所以从某种意义上说,通过少量的 URL 条目、视图和模板,您可以让它看起来好像您有一个包含无数“文件”的 Web 根目录,这些都不是您的实际 Python 源代码。

于 2012-12-07T22:08:19.647 回答