Django 使用模板
模板作为公共页面,可以被其他页面引用并重写,可以更快速的编辑页面。
1,编辑myweb\web\views.py,内容如下:
from django.shortcuts import render
def home(request):
return render(request, 'home.html')
前面在介绍创建简单的页面时,导入的是HttpResponse,直接向页面输出内容,而这里导入的是render。
2,将视图与网址对应
修改E:\myweb\myweb\urls.py:
from django.conf.urls import url
from django.contrib import admin
import view
from web import views
urlpatterns = [
url(r'^$', views.home),
]
3,在myweb\web目录中创建templates目录,在templates目录创建base.html,home.html。
Base.html将作为一个模板文件,所有的html文件都可以继承该文件,编辑base.html的内容如下:
<!DOCTYPE html>
<head>
<meta http-equiv="Content-Type" content="text/html" charset="UTF-8">
<meta name="viewport" content="width=device-width, height=device-height,initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>李老道自学网</title>
<link rel="stylesheet" href="./static/css/style.css">
<link rel="shortcut icon" href="/static/favicon.ico">
</head>
<body>
<header class="g-hd">
<span class="logo nosign"><a href="/">李老道自学网</a></span>
{% block title %}
<div class="fr">李老道自学网</div>
{% endblock %}
</header>
<main class="g-mn">
{% block content %}
<div>李老道自学网</div>
{% endblock %}
</main>
</body>
</html>
模板中用到 {% block xxx %},代表被继承引用后,是可以被替换的内容。如果不替换则会显示模板中的内容。以下home.html将继承base.html并替换{% block content %}中的内容。
编辑home.html的内容如下:
{% extends 'base.html' %}
{% block title %}
<nav>
<ul>
{# 显示所有分类 #}
<li><a href="?">测试基础</a></li>
<li><a href="?">python2</a></li>
</ul>
</nav>
{% endblock %}
{% block content %}
<aside class="g-sd">
<section class="u-card">
<div class="card-hd">
<span class="card-tit">
{{ type_name }}
</span>
</div>
<div class="card-bd">
<ul class="m-btnList">
{# 显示分类下的章节 #}
<li><a href="?">测试相关概念</a></li>
</ul>
</div>
</section>
<section class="u-card">
<div class="card-hd">
<span class="card-tit">
说明
</span>
</div>
<div class="card-bd">
<ul class="m-btnList">
<li>
本站所有内容均是本人学习笔记,只是将学习过程记录下来,共大家分享,并非教学式教程。
如果您觉得此文章对您有帮助,求打赏:
</li>
</ul>
</div>
</section>
</aside>
<article class="m-article">
{# 显示章节下的文章 #}
xxxxxxxxxxx
</article>
{% endblock %}
这里{% extends 'base.html' %}代表继承base.html模板,而{% block title %},{% block content %}块中的内容将替换掉模板中的内容。
该文章对你有帮助吗,求分享转发: 分享到QQ空间 分享给QQ好友