Pycharm开发Django项⽬模板详细教程
模板
在之前的章节中,视图函数只是直接返回⽂本,⽽在实际⽣产环境中其实很少这样⽤,因为实际的页⾯⼤多是带有样式的HTML代码,这可以让浏览器渲染出⾮常漂亮的页⾯。⽬前市⾯上有⾮常多的模板系统,其中最知名最好⽤的就是DTL和Jinja2。DTL是Django Template Language三个单词的缩写,也就是Django⾃带的模板语⾔。当然也可以配置Django⽀持Jinja2等其他模板引擎,但是作为Django内置的模板语⾔,和Django可以达到⽆缝衔接⽽不会产⽣⼀些不兼容的情况。因此建议⼤家学习好DTL。
DTL与普通的HTML⽂件的区别:
DTL模板是⼀种带有特殊语法的HTML⽂件,这个HTML⽂件可以被Django编译,可以传递参数进去,实现数据动态化。在编译完成后,⽣成⼀个普通的HTML⽂件,然后发送给客户端。
渲染模板:
渲染模板有多种⽅式。这⾥讲下两种常⽤的⽅式。
render_to_string:到模板,然后将模板编译后渲染成Python的字符串格式。最后再通过HttpResponse类包装成⼀个HttpResponse对象返回回去。⽰例代码如下:
以上⽅式虽然已经很⽅便了。但是django还提供了⼀个更加简便的⽅式,直接将模板渲染成字符串和包装成HttpResponse对象⼀步到位完成。⽰例代码如下:
fromdjango.shortcutsimportrenderdefbook_list(request):returnrender(request,'list.html')
模板查路径配置:
python新建项目教程在项⽬的settings.py⽂件中。有⼀个TEMPLATES配置,这个配置包含了模板引擎的配置,模板查路径的配置,模板上下⽂的配置等。模板路径可以在两个地⽅配置。
DIRS:这是⼀个列表,在这个列表中可以存放所有的模板路径,以后在视图中使⽤render或者render_to_string渲染模板的时候,会在这个列表的路径中查模板。
APP_DIRS:默认为True,这个设置为True后,会在INSTALLED_APPS的安装了的APP下的templates⽂件加中查模板。
查顺序:⽐如代码render('list.html')。先会在DIRS这个列表中依次查路径下有没有这个模板,如
果有,就返回。如果DIRS列表中所有的路径都没有到,那么会先检查当前这个视图所处的app是否已经安装,如果已经安装了,那么就先在当前这个app下的templates⽂件夹中查模板,如果没有到,那么会在其他已经安装了的app中查。如果所有路径下都没有到,那么会抛出⼀个TemplateDoesNotExist的异常。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论