Python Django大型框架入门连载03:返回HTML模板页面、templates模板配置、后端传变量到网页
上期我们已经学会:
创建APP、注册应用、手写视图函数、配置路由、返回纯文字网页。但真实网站不可能只显示纯文字,需要HTML排版、CSS样式、页面布局。今天核心学3件大事:
1.配置Django templates模板文件夹
2.视图函数返回独立HTML网页
3.后端定义变量,传给前端HTML渲染
一、先搞懂Django模板原理
Django开发网页分两层:
·后端:views.py 处理逻辑、定义变量、接收请求
·前端:templates 存放HTML页面,负责展示样式流程:浏览器请求地址 → 路由匹配 → 视图函数 → 加载HTML模板 → 渲染页面返回给浏览器
二、第一步:创建templates模板文件夹
在home应用根目录下,新建文件夹,名字必须叫:templates再进入templates,继续新建一个和APP同名文件夹 home
最终目录结构:
home/
└─ templates/
└─ home/
├─ index.html
└─ about.html规范写法:templates里再建一层home文件夹,防止多APP模板文件名冲突。三、第二步:配置项目识别模板路径
打开项目配置文件:mysite/settings.py
找到 TEMPLATES 里的 DIRS,改成空列表改为:
只要 APP_DIRS = True,Django就会自动识别每个APP下的templates文件夹,不用额外配置路径。四、第三步:手写第一个HTML模板页面
在 home/templates/home/ 新建 index.html
写入简单网页代码:
五、第四步:修改视图函数,返回HTML模板
打开 home/views.py
不用再写HttpResponse,改用 render 渲染模板:
语法解释:
render(request, 'home/index.html')
会自动去 templates/home/ 下找 index.html 文件
六、运行测试访问
CMD启动服务:
浏览器访问:
http://127.0.0.1:8000
就能看到带样式、带排版的HTML网页,不再是纯文字!
七、进阶核心:后端传变量给前端HTML
实际开发需要后端动态传数据到网页,比如标题、用户名、列表内容。修改 home/views.py 的 index函数:
打开 index.html,用 Django 模板语法 {{ 变量名 }} 取值:
刷新页面,就能看到后端传过来的文字,实现后端动态传值到前端。
八、再新增一个about模板页面练习
1.在 templates/home/ 新建 about.html
2.写简单HTML结构,预留模板变量
3.views.py 写 about 视图函数,封装传参字典
4.配置总路由 path('about/', about)
访问 /about 即可看到第二个独立HTML页面。
九、本期核心知识点总结
1.模板文件夹固定命名:templates
2.规范结构:templates/home/ 存放当前APP的HTML
3.settings.py 中 APP_DIRS=True 自动识别模板
4.视图用 render() 加载HTML模板
5.后端用字典封装变量,前端 {{ 变量名 }} 接收渲染
6.彻底实现前后端简单分离开发
十、新手必踩坑
❌ 模板文件夹名字写错,不是template、Templates
❌ 模板路径写错,少写 home/ 层级
❌ render 忘记传 request 第一个参数
❌ 前端模板变量名和后端字典key不一致
❌ 修改HTML后没清缓存,页面不更新
本期小结
1.学会配置templates模板目录
2.掌握视图返回HTML完整页面
3.学会后端定义变量、传值到前端HTML
4.能用模板语法渲染动态数据
小作业
1.新建 /news/ 路由
2.创建 news.html 模板页面
3.后端传 新闻标题、发布时间 两个变量
4.前端展示出来,加简单CSS样式
下期预告
Django连载04:模板语法for循环、if判断、静态文件CSS/JS/图片引入、页面布局优化教你用模板循环渲染列表、条件判断显示内容,还能引入本地CSS、图片、JS,搭建完整网页布局!