首页 > 编程问答 >如何在 Django 中加载特定应用程序的模板?

如何在 Django 中加载特定应用程序的模板?

时间:2024-07-30 13:58:33浏览次数:8  
标签:python django django-rest-framework django-views django-templates

所以我正在高级学习Django,我已经知道如何包含manage.py所在的BASE_DIR中的模板。但是我想知道如何在 Django 中的特定应用程序中查找模板。

例如,我有一个名为“mysite”的项目和一个名为 polls 的应用程序。

现在,我在 settings.py DIRS= 中添加了模板[os.path.join(BASE_DIR, "templates")].

但是,如何在民意调查应用程序目录中添加特定于民意调查应用程序的模板?

.
├── db.sqlite3
├── manage.py
├── mysite
│   ├── asgi.py
│   ├── __init__.py
│   ├── settings.py
│   ├── urls.py
│   └── wsgi.py
├── polls
│   ├── admin.py
│   ├── apps.py
│   ├── __init__.py
│   ├── migrations
│   │   ├── __init__.py
│   ├── models.py
│   ├── static
│   │   ├── images
│   │   ├── scripts.js
│   │   └── style.css
│   ├── tests.py
│   ├── urls.py
│   └── views.py
└── templates
    ├── polls
    │   └── index.html
    └── static
        ├── images
        ├── scripts.js
        └── style.css

之前,我希望它看起来像这样。

.
├── db.sqlite3
├── manage.py
├── mysite
│   ├── asgi.py
│   ├── __init__.py
│   ├── settings.py
│   ├── urls.py
│   └── wsgi.py
├── polls
│   ├── admin.py
│   ├── apps.py
│   ├── __init__.py
│   ├── migrations
│   │   ├── __init__.py
│   ├── models.py
│   ├── static
│   │   ├── images
│   │   ├── scripts.js
│   │   └── style.css
│   ├── templates
│   │   ├── polls
│   |   │   ├── index.html
│   ├── tests.py
│   ├── urls.py
│   └── views.py
└── templates
    ├── polls
    │   └── index.html
    └── static
        ├── images
        ├── scripts.js
        └── style.css

无需在 Django 中为特定应用程序加载模板执行任何特殊操作。Django 的模板加载系统会自动搜索所有已安装的应用程序中的名为“templates”的目录。

如果希望在应用程序中构建模板,请按照以下步骤操作:

  1. 在的应用程序目录中创建一个名为“templates”的目录。 例如,如果的应用程序名为“polls”,则目录结构应如下所示:
polls/
    ├── templates/
    │   └── polls/
    │       └── index.html
    ├── views.py
    ├── models.py
    ...
  1. 在应用程序的“templates”目录中创建一个与的应用程序同名的目录。 这似乎是多余的,但它可以防止多个应用程序使用相同名称的模板发生冲突。例如:
polls/
    ├── templates/
    │   └── polls/
    │       └── index.html
    ...
  1. 将的模板文件放入此目录。 例如, index.html 将位于 polls/templates/polls/ 中。

  2. 在的视图中,使用 render() 快捷方式来渲染模板:

from django.shortcuts import render

def index(request):
    context = {
        # Your context data here
    }
    return render(request, 'polls/index.html', context)

Django 的模板加载器将自动在 polls/templates/ 目录中搜索名为 index.html 的模板。

settings.py 中的 DIRS 设置

DIRS 设置用于指定 Django 应该查找模板的附加目录,这些目录不在已安装的应用程序中。无需修改 DIRS 来包含应用程序中的 templates 目录。Django 会自动处理它。

使用上述结构,Django 将在的应用程序和项目级别的 templates 目录中查找匹配的模板,从而可以轻松组织和覆盖应用程序提供的模板。

标签:python,django,django-rest-framework,django-views,django-templates
From: 78809996

相关文章

  • Python:在 Protocol 和 TypedDict 之间共享类型注释
    举这个简单的例子:from__future__importannotationsimporttypingastclassMyType:def__init__(self,s:str,i:int)->None:self.s=sself.i=iclassMyProto(t.Protocol):s:stri:intclassMyDict(t.TypedDict):......
  • PIL 和 python 静态类型
    我有一个函数参数,它可以接受图像的多种类型:defsomefunc(img:Union[np.array,Image,Path,str]):PILImage在这种情况下抛出以下异常:TypeError:Union[arg,...]:eachargmustbeatype.Got<module'PIL.Image'from...进一步检查图像对象后这才有......
  • 学会用Python爬取小说网站,想看什么就爬什么,广告也不用看了~
    今天以爬取笔趣阁小说网站为例,练习Python爬虫技术。通过这个爬虫,可以完成批量爬取一本小说的所有章节,并将所有章节内容按顺序保存到一个txt文档内,下面我们就开始吧。首先,百度搜索“笔趣阁”,发现有很多网站都叫笔趣阁。我们可以随便挑选一个网站尝试,本文我以‘https://......
  • 计算机毕业设计django+vue《Python数据分析》的教学系统【开题+论文+程序】
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景在当今数字化时代,数据分析已成为各行各业不可或缺的技能之一,而Python作为数据分析领域的首选语言,其重要性日益凸显。然而,传统的教学模式在......
  • 如何将多个变量分配给 python 函数中的单个参数?
    我正在尝试编写一个程序,如果可能的话,它需要一个三项式并对其进行因式分解。每当用户输入A、B和C时,三项式应该通过Factor(product,summation)函数获取,但我似乎无法弄清楚如何将A和C分配给乘积arg,将B分配给我尝试在函数外部声明不同的变量,product=(a*c)和summati......
  • python - 从文本生成音乐
    请给我一些建议为了解释一下,我输入“深度睡眠的睡眠音乐”,它将返回一个wav文件:https://www.youtube.com/watch?v=1wAdQhFJy54或者我给出一个wav文件,它会返回相同的现在这是我尝试过的:https://github.com/facebookresearch/audiocraft......
  • 从零开始的Python开发日记(7):短信验证功能开发流程
    短信验证功能开发流程在开发一个包含登录、注册以及短信验证的功能时,你需要遵循一个系统的开发流程。以下是实现这一功能的基本步骤,包括所需的技术和代码示例。1.环境配置首先,确保你的开发环境已经配置好,并安装了必要的库和工具。pipinstallfastapiuvicornsqlalche......
  • 【Python数值分析】革命:引领【数学建模】新时代的插值与拟合前沿技术
    目录​编辑第一部分:插值的基本原理及应用1.插值的基本原理1.1插值多项式1.2拉格朗日插值 1.3牛顿插值 1.4样条插值2.插值的Python实现2.1使用NumPy进行插值2.2使用SciPy进行插值2.2.1一维插值​编辑2.2.2二维插值3.插值的应用场景3.1数据平......
  • Django 1.9 教程 __str__ () 不起作用
    我正在尝试使用Win10操作系统和Python3.5的Django1.9教程,Django版本是1.9。我已成功在“问题”和“选择”中创建并存储值。之后,当我按照教程__str__()django教程2更改了polls/model.py时。我收到此错误:我的polls\models.py是:>>>frompolls.mod......
  • 在家用电脑上设置 Python 和 Jupyter,尝试打开 Jupyter 笔记本并显示错误,无法获取
    我有最新的Python版本3.12.4和以下版本的Jupyter:SelectedJupytercorepackages...IPython:8.26.0ipykernel:6.29.5ipywidgets:notinstalledjupyter_client:8.6.2jupyter_core:5.7.2jupyter_server:2.14.2jupyterlab......