Python Web Django 模板语言中的 extends,block 和 include
发布时间:2023-04-15 14:20:02 所属栏目:教程 来源:
导读:extends使用方法 首先 extends 也就是继承,子类继承父类的一些特性。在Django 模板中通过继承可以减少重复代码。 首先我们建立一个app,名字叫做 hello。别忘了在 sett
首先 extends 也就是继承,子类继承父类的
首先 extends 也就是继承,子类继承父类的
|
extends使用方法 首先 extends 也就是继承,子类继承父类的一些特性。在Django 模板中通过继承可以减少重复代码。 首先我们建立一个app,名字叫做 hello。别忘了在 sett 首先 extends 也就是继承,子类继承父类的一些特性。在Django 模板中通过继承可以减少重复代码。 首先我们建立一个app,名字叫做 hello。别忘了在 settings.py 中的 INSTALLED_APPS 注册这个app。不注册会出现 hello 目录下的 templates 中的模板无法调用。 1.在根目录下的 templates 创建 base.html <!DOCTYPE html> <html lang="en"> <head> <Meta charset="UTF-8"> <title>{% block title %}{% endblock %}</title> </head> <body> {% block content %} {% endblock %} </body> </html> 这里的 block 就是继承后要被替换的内容,其他的则与该模板相同. 2.在hello这个app中继承这个模板 在hello目录下新建templates目录,再在此目录下新建hello目录。hello目录中新建 hello.html。目录结构就像这样,理解一下django模板引用路径的规则 hello.html 内容如下 {% extends 'base.html' %} {% block title %}{{ title }}{% endblock %} {% block content %}{{ content }}{% endblock %} 首行代码就是先继承 base.html,也就是有了除了block的剩下内容。后面两个则是在为 block 填空,填入的内容是要传入的参数。这里分别是 title 和 content。这里可以看出模板语句是单个大括号加百分号,而模板变量是双大括号,没有百分号。 3.添加路由和方法 路由文件 urls.py 内容如下 from django.contrib import admin from django.urls import path from hello import views urlpatterns = [ path('hello/<str:title>/<str:content>/',views.hello), path('admin/', admin.site.urls), ] 注意在路径中获取参数的方法,str还可以换为int。我觉得这种传参的方法比较简单,还有正则表达式的传参方法。 views.py from django.shortcuts import render # Create your views here. def hello(request,title,content): context={'title':title,'content':content} return render(request,'hello/hello.html',context) 这里函数的形参名就是在路由中获取的参数名。通过传递参数会render给hello.html这个模板,而hello.html这个模板又会继承base.html这个父模板。 4.总结extends 通过 extends 可以减少代码重复。可以再增加header、footer等来包含共同的头部和底部内容。 include 要么放在 head 中,可以减少重复引入css或js,要么放在body中当一个共同的导航条,或者底部内容。 然而如果要在多处都 include 就不如直接用 extends 了。 (编辑:汽车网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
