前两节里生成的视图都是通过硬编码HTML来实现的,现在来学习如何使用Django中的模板来生成视图。在终端下执行django-admin startproject django_0030创建本节的项目。
一、一个最简单的模板
首先我们在第二层django_0030目录下创建一个views.py文件,并在其中输入如下内容
然后为hello视图添加对应的url
终端执行python manage.py runserver 0.0.0.0:80启动开发服务器,然后访问127.0.0.1/hello/将会看到如下视图
这就是最简单的模板使用方法。首先导入Template模板类型,然后导入Context上下文类型。创建模板对象时我们传入了'Hello {{ name }}',双层大括号中的name就是之后我们需要传递的参数。创建Context对象时我们会传入模板需要的变量和对应的值,传递方式和Python的字典类似。最后调用Template对象的render方法并传递前面创建的Context对象。由于name的值为'Jack',所以最后我们看到的视图为Hello Jack。
二、从文件中载入模板
上面的例子中还是在程序中硬编码了模板的内容,现在我们来从文件中加载模板的内容。在项目内层django_0030文件夹下创建一个templates文件夹,并在其中创建hello.html文件,并输入如下内容
此时项目的结构应该是这样的
修改对应的视图函数内容如下
最后我们还需要修改setting.py文件
添加的内容为模板文件所在的绝对路径,此时运行开发服务器并访问127.0.0.1/hello/可以看到如下视图
从文件中加载模板内容需要用到get_template函数,它位于django.template.loader模块中。
三、更简单地使用模板
修改视图函数如下
再查看视图,和修改之前是一样的
但是代码量却减少了很多。