Django 模板(Template)四步曲

举报
周杰伦本人 发表于 2025/07/30 14:12:59 2025/07/30
【摘要】 Django 模板(Template)四步曲目标:让漂亮的 HTML 页面动态展示数据库数据,而不用手写 SQL。一、T 是什么T 即 Template,负责把 数据 + HTML 拼成最终页面。Django 的模板语法 ≈ “HTML + 占位符”。二、四步流程(跟着做就能跑)步骤关键动作代码/命令① 建模板文件夹在项目根新建 templates/mkdir templates② 告诉 ...

Django 模板(Template)四步曲

目标:让漂亮的 HTML 页面动态展示数据库数据,而不用手写 SQL。


一、T 是什么
T 即 Template,负责把 数据 + HTML 拼成最终页面。
Django 的模板语法 ≈ “HTML + 占位符”。


二、四步流程(跟着做就能跑)

步骤 关键动作 代码/命令
① 建模板文件夹 在项目根新建 templates/ mkdir templates
② 告诉 Django 路径 修改 settings.py python TEMPLATES = [{'DIRS': [BASE_DIR/'templates']}]
③ 写模板文件 templates/index.html html <h1>{{ title }}</h1>
④ 渲染并返回 视图里用 render python return render(request,'index.html',{'title':'Django'})

三、模板语法速查

语法 作用
{{ var }} 输出变量
{% if %} / {% for %} 条件、循环
{% url 'name' %} 反向解析路由

四、动态数据示例

视图 views.py

def index(request):
    books = Book.objects.all()               # 查数据库
    return render(request, 'index.html', {'books': books})

render(request, 'index.html', {'books': books}) 一行拆成三段:

  1. request
    Django 把浏览器发来的所有请求信息(GET/POST 数据、Cookie、META 头)封装成 HttpRequest 对象,模板里要用时需原封不动传进去。

  2. 'index.html'
    告诉 Django 去 模板目录settings.py 里配置的 templates/)里找文件 index.html 作为“外壳”。

  3. {'books': books}
    数据字典(又称 context)。
    • 键 'books' 是模板里用的变量名。
    • 值 books 是视图里查到的 QuerySet / 列表 / 字典等真实数据。

最终效果:
Django 把 books 里的每一本书塞进 index.html{{ books }} 位置,生成完整 HTML 后返回给浏览器。

模板 index.html

<ul>
{% for book in books %}
    <li>{{ book.name }}</li>
{% endfor %}
</ul>

五、一句话总结
模板 = HTML 壳子;
render() 把数据塞进壳子 → 生成最终页面。感觉有点像freemarker

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。