Django模板引擎入门教程:分离内容与表现
5星 · 超过95%的资源 142 浏览量
更新于2024-08-31
收藏 127KB PDF 举报
本文主要介绍了Python Django框架中模板的使用方法,通过一个具体的项目实例,展示了如何创建模板文件,设置模板目录,以及使用模板变量和模板标签。
在Django框架中,模板是实现MVC(Model-View-Controller)设计模式中的View部分,它的主要作用是将数据和页面展示分离,使得开发者可以专注于内容的处理,而不用关心HTML的编写。模板定义了一系列的占位符(如`{{ name }}`)和逻辑标签(如`{% if %}`和`{% for %}`),这些元素会被Django渲染引擎替换或执行,最终生成动态的HTML页面。
1. **模板的基本结构**:
- **模板变量**:在双大括号`{{ }}`内的变量,例如`{{ name }}`,表示将后台传递过来的数据插入到此处。
- **模板标签**:以`{% %}`包裹的标签,用于控制模板的逻辑,如`{% if %}`用于条件判断,`{% for %}`用于循环遍历。
2. **项目实战步骤**:
- 创建名为`MyDjangoSite`的项目,这是Django项目的根目录。
- 在项目根目录下的`MyDjangoSite`文件夹中创建`templates`文件夹,用于存放模板文件。
- 在`templates`文件夹内创建`user_info.html`模板文件,其中包含HTML结构以及模板变量和标签。例如,`<p>姓名:{{name}}</p>`表示显示用户姓名,`<p>年龄:{{age}}</p>`显示用户年龄。
3. **配置模板目录**:
- 打开`settings.py`文件,找到`TEMPLATE_DIRS`设置,这是一个包含所有模板目录的列表。
- 使用`os.path.join()`和`replace()`函数,添加`templates`文件夹的绝对路径到列表中,确保路径使用正斜杠`/`而非反斜杠`\`。
```python
TEMPLATE_DIRS = (
# ...
os.path.join(os.path.dirname(__file__), 'templates').replace('\\', '/'),
)
```
这一步是告诉Django在哪里查找模板文件,`os.path.dirname(__file__)`获取当前`settings.py`文件的路径,然后添加`templates`子目录。
4. **模板渲染**:
- 在视图函数中,通过`render`或者`render_to_response`函数,将模板与上下文数据一起传递给用户,例如:
```python
from django.shortcuts import render
def user_info(request):
context = {'name': 'John', 'age': 30}
return render(request, 'user_info.html', context)
```
这里`context`是一个字典,键值对对应模板中的变量,`render`函数会将`context`中的数据填入到模板的占位符中,生成HTML并返回给浏览器。
5. **模板继承与块(Blocks)**:
Django模板支持模板继承,可以通过`extends`标签继承一个基础模板,然后在子模板中使用`block`定义可重写的部分。基础模板通常包含页面布局,子模板只关注具体内容,这样可以提高代码复用性。
6. **过滤器(Filters)**:
模板还支持过滤器,它们可以对变量进行操作,如`|capfirst`使字符串首字母大写,`|date`格式化日期等。例如,`{{ date|date:"Y-m-d" }}`将日期对象按"年-月-日"格式化。
7. **模板标签扩展**:
Django允许开发自定义模板标签库,以满足特定需求,比如处理复杂的逻辑或数据转换。
总结,Django模板系统提供了一种强大且灵活的方式来处理HTML生成,结合视图和模型,实现了动态网页的创建。通过理解并熟练运用模板变量、标签、过滤器和继承机制,可以构建出高效且易于维护的Django应用。
2023-06-16 上传
2023-07-01 上传
点击了解资源详情
2020-12-20 上传
2020-12-23 上传
2020-09-21 上传
2021-02-20 上传
2023-11-04 上传
2024-06-24 上传
weixin_38679839
- 粉丝: 4
- 资源: 975
最新资源
- OPNET 用户指南_翻译稿
- 数据库的设计-----VFP
- FLEX 3 CookBook 简体中文学习基础资料PDF
- TOMCAT移植到JBOSS
- Myeclipse7[1].0+JBoss5.0测试EJB3.0环境搭建过程详解
- PROTEUS中文教程
- NCURSES Programming HOWTO中文第二版
- 高性能计算之并行编程技术--MPI并行程序设计
- ORACLE备份策略
- 软件评测师07年大题与答案,Word版
- The Productive Programmer.pdf
- c#团队开发之命名规范
- 计算机操作系统(汤子瀛)习题答案.pdf
- ArcGIS Server轻松入门
- 基于组播技术的网络抢答系统设计
- USB数据采集的几个问题