一、模板
视图函数只是返回文本,而在实际生产环境中其实很少这样用,因为实际的页面大多是带有样式的HTML代码,这可以让浏览器渲染出非常漂亮的页面,目前市面上有非常多的模板系统,其中最知名最好用的是DTL和Jinja2。DTL是Django Template Language三个单词的缩写,也就是Django自带的模板语言,当然也可以配置Django支持Jinja2等其他模板引擎,但是作为Django内置的模板语言,和Django可以达到无缝衔接而不会产生一些不兼容的情况。
DTL与普通HTML文件的区别
DTL模版是一种带有特殊语法的HTML文件,这个HTML文件可以被Django编译,可以传递参数进去,实现数据动态化。在编译完成后,生成一个普通的HTML文件,然后发送给客户端。
二、渲染模板
渲染模板有很多种方式,以下有两种常用的方式
1、render_to_string:找到模板,然后将模版编译后渲染成Python的字符串格式,然后在通过HttpResponse类包装成一个HttpResponse对象返回回去。
2、Django提供了一个更加简便的方式,直接将模板渲染成字符串和包装成HttpResponse对象,一步到位。
1、方式一:render_to_string
新建template_intro_demo项目,并在项目中加入front app,在templates中新建一个index.html
项目结构:
index.html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <style> body{ background-color: pink; } </style> <body> 这个是从模板中渲染的字符串 </body> </html>
template_intro_demo.urls.py
from django.urls import path from front import views urlpatterns = [ path("", views.index, name="index"), ]
front.views.py
from django.template.loader import render_to_string from django.http import HttpResponse def index(request): html=render_to_string("index.html") return HttpResponse(html)
运行结果如下:
2、方式二:render函数
更改front.views.py
from django.shortcuts import render def index(request): return render(request, 'index.html')
运行结果:
标签:index,render,模版,Django,html,import,模板 From: https://www.cnblogs.com/longlyseul/p/18241148