- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是这本畅销书的读者和忠实粉丝 Two Scoops of Django .这本书充满了伟大的想法,但有一个我不太清楚。
作者建议在 Django 项目根目录中创建一个 static
和一个 templates
文件夹。
该 template
文件夹用于“站点范围的模板”(在 pag.24 中说明)。另外在 pag.162 他们说“模板通常应该放在 Django 项目的根文件夹中......唯一的异常(exception)是当你将应用程序捆绑到第三方包中时”。
他们没有在 ch.12 中明确提及它,但我想最好在 templates
根目录中为每个应用程序(与应用程序同名)创建一个文件夹。
假设在我的 icecreamratings
Django 项目中我有 2 个应用程序:
flavors
有 2 个模板:new_flavor.html 和 details.htmlprofiles
带有 1 个模板:details.html所有模板都继承自 base.html
。我猜他们会建议以下结构:
icecreamratings_project/
|-- ...
|-- icecreamratings/ # Django project root
|-- ...
|-- static/
|-- templates/
|-- 404.html
|-- 500.html
|-- base.html
|-- flavors/ # same name as app flavor
| |-- new_flavor.html
| |-- details.html
|-- profiles/ # same name as app profiles
|-- details.html
我的理解正确吗?
另一方面,Django official docs建议在每个应用程序中创建一个 static
文件夹,并在其中创建一个与应用程序同名的子文件夹,例如:my_app/static/my_app/myimage.jpg
。
所以我们有 2 种不同的策略:一个独特的 template
文件夹和许多 static
文件夹(每个应用程序一个)。拥有两种不同的策略显然是一个糟糕的选择。
那么,您如何看待在每个应用程序中存储一个 template
和 static
文件夹?像这样:
icecreamratings_project/
|-- ...
|-- icecreamratings/ # Django project root
|-- ...
|-- static/ # site-wide static files
| |-- bootstrap/ # bootstrap source files
| |-- jquery/ # jquery source files
| |-- css/ # css files used by base.html (and others in templates root)
| |-- js/ # javascript files used base.html (and others in templates root)
| |-- img/ # img files files used base.html (and others in templates root)
|-- templates/ # site-wide templates
| |-- 404.html
| |-- 500.html
| |-- base.html
|-- flavors/ # an app
|-- static/
| |-- flavors/ # static files specific for this app
| |-- css/ # css files for flavor app templates
| |-- js/ # javascript files for flavor app templates
| |-- img/ # img files for flavor app templates
|-- templates/ # template files specific for this app
|-- new_flavor.html
|-- details.html
最佳答案
django 官方文档不建议您在每个应用程序中创建一个静态文件夹。相反,它更喜欢将静态目录存储在项目目录下。
Now we might be able to get away with putting our static files directly in my_app/static/ (rather than creating another my_app subdirectory), but it would actually be a bad idea. Django will use the first static file it finds whose name matches, and if you had a static file with the same name in a different application, Django would be unable to distinguish between them. We need to be able to point Django at the right one, and the easiest way to ensure this is by namespacing them. That is, by putting those static files inside another directory named for the application itself.
官方文档也回答了你关于模板结构的问题。
Loads templates from Django apps on the filesystem. For each app in INSTALLED_APPS, the loader looks for a templates subdirectory. If the directory exists, Django looks for templates in there.
This means you can store templates with your individual apps. This also makes it easy to distribute Django apps with default templates.
The Two Scoops of Django 是一本很棒的书。但是你应该先阅读官方文档。
关于django - 根据 "Two Scoops of Django"在 Django 中存储静态/模板文件的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22924745/
Scoop是什么? Scoop 是一个基于 Windows 的包管理器,能够帮助开发者高效管理开发环境和应用程序。 它推荐通过命令行进行包的安装、更新和卸载,同时提供了简单易用的包组织方式,透明化
在平常生活中如果要安装像git、java、node这些环境的时都需要先去官网下载安装程序,点击安装,之后还需要配置,不仅过程麻烦,而且工具多了之后整理起来也相当不容易,配置也很杂,整个电脑就像被污染
我正在尝试使用 Python 的 Scoop 库对从正态分布随机生成的 10000000 个数据点(4 个特征,1 个目标变量)并行运行线性回归。这是代码: import pandas as pd i
我在 python 中使用 DEAP 库来解决多目标优化问题。我想为此任务使用多个处理器;但是,我遇到了一些麻烦。 为了提供一些背景信息,我将 networkx 与 DEAP 结合使用我还定义了适应度
我想在我的电脑上安装 gradle:我在 https://gradle.org/install/ 中找到 scoop install gradle - Scoop 是受 Homebrew 启发的 Wi
我在 HDFS 中有一个“test”表,其中包含列(id、name、city、salary)。我想将 (name, city) 导出到 MySQL 但是当我使用 --columns 使用 SQOOP
我正在使用 Apache Hadoop 和 Apache Sqoop。我正在尝试将 mysql 表导入到 hdfs 中。 这是我正在执行的命令: sqoop-import --connect jdbc
我尝试使用以下脚本将 oracle 输出保存到 hadoop 空间中的文本文件中。 #!/bin/bash DBUSER='scott' DBUSERPASSWORD='tiger' DB='orac
我想试试Scoop在 Windows 及其文档上,通过运行要求“必须为您的用户帐户启用 PowerShell” PS > Set-ExecutionPolicy -ExecutionPolicy Re
我是这本畅销书的读者和忠实粉丝 Two Scoops of Django .这本书充满了伟大的想法,但有一个我不太清楚。 作者建议在 Django 项目根目录中创建一个 static 和一个 temp
我是一名优秀的程序员,十分优秀!