一、模板应用实例
1、启动服务器
进入 HelloWorld 目录输入以下命令:python manage.py runserver 0.0.0.0:8000,启动服务器:
2、创建模板
接着上篇文章在HelloWorld里面建立templates 文件夹,templates 中创建hello.html文件
hello.html中代码如下
<h1>{{ hello }}</h1>
从模板中我们知道变量使用了双括号。
接下来我们需要想Django说明模板路径,修改HelloWorld/ setting.html文件中TEMPLATES 中 的 DIRS为:[BASE_DIR+"/templates",],如下:
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [BASE_DIR+"/templates",], #修改位置
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
修改view.py文件
from django.shortcuts import render
def hello(request):
context ={}
context["hello"] = "Hello World!大家好"
return render(request,"hello.html",context)
reander替代了HttpResponse,render使用了context字典中的元素键“hello”,对应了模板中的变量“{{hello}}”
再访问http://127.0.0.1:8000/hello,查看页面
2、模板继承
模板采用继承的方式服用
接下来在templates 中创建base.html文件,输入内容如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h1>Hello World!</h1>
<p>菜鸟教程Django测试</p>
{% block mainbody %}
<p>original</p>
{% endblock %}
</body>
</html>
mainbody 的 block 标签是可以被继承者们替换掉的部分。
所有的 {% block %} 标签告诉模板引擎,子模板可以重载这些部分。
hello.html 中继承 base.html,并替换特定 block,hello.html 修改后的代码如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
{% extends "base.html" %}
{% block mainbody %}<p>继承了 base.html 文件</p>
{% endblock %}
</body>
</html>
第一行代码说明 hello.html 继承了 base.html 文件。可以看到,这里相同名字的 block 标签用以替换 base.html 的相应 block。
重新访问地址 http://127.0.0.1:8000/hello