博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Django 之母板
阅读量:7310 次
发布时间:2019-06-30

本文共 3069 字,大约阅读时间需要 10 分钟。

---恢复内容开始---

母板

  
Title {
% block page-css %} {
% endblock %}

这是母板的标题

{
% block page-main %}{
% endblock %}

母板底部内容

{
% block page-js %}{
% endblock %}

注意:我们通常会在母板中定义页面专用的CSS块和JS块,方便子页面替换。

继承母板

在子页面中在页面最上方使用下面的语法来继承母板。

{% extends "base.html"%}

例子:

只换掉右侧内容

    
母板
这是导航条
这是左侧菜单
{
# 母板是变的:右侧内容#}{% block page_content%}{
% endblock %}
共有的页面
{% extends 'base.html' %}{
#首先继承母板#}{
# extends 一定要放在最上面#}{
% block page_content %}
# name age
1 jassin 21
2 lishi 21
3 dandan 35
{
% endblock %}
studen_list,学生表
{% extends "base.html"%}{
# 此处引用注意加引号#}{
% block page_content %}
{
% endblock %}
不知道什么表
# views。pydef student_list(request):    return render(request, "student_list.html")def teacher_list(request):    return render(request,"teacher_list.html")# urls。py    url(r'^student_list/$',views.student_list),    url(r'^teacher_list/$',views.teacher_list),
配置

块(block)

通过在母板中使用{% block  xxx %}来定义"块"。

在子页面中通过定义母板中的block名来对应替换母板中相应的内容。

{% block page_content %}    
{
% endblock %}
把所有页面共用的部分 提取出来 放到母版里面                母版里面通过定义 block ,                通常模板里面为子页面单独定义            {
% block page_css %}{% endblock %} --> 子页面才用到的CSS文件 {
% block page_js %}{% endblock %} --> 子页面采用到的JS文件 子页面 继承 {
% extends "base.html" %} --》 一定要放在子页面的最上面 {
% block page_content %} 我子页面才有的内容 {
% endblock %}

 

组件

可以将常用的页面内容如导航条,页尾信息等组件保存在单独的文件中,然后在需要使用的地方按如下语法导入即可。(导入组件)

{% include 'navbar.html' %}

 

 静态文件相关(实现动态)

在setting.py 中STATIC_URL = '/static/' 的static是可以改变# 所以我们也要把他实现为动态传.首先需要先 {
% load static %} 导入然后使用 例如 Hi! # 这个已经写死Hi! 实现动态此处static 已经将static 导入,与 STATIC_URL = '/static/' 的static别名无关

引用JS文件时使用:

{% load static %}

某个文件多处被用到可以存为一个变量

{% load static %}{
% static "images/hi.jpg" as myphoto %}

 使用get_static_prefix(起别名)

{% load static %}Hi!

或者

{% load static %}{
% get_static_prefix as STATIC_PREFIX %}Hi!Hello!

自定义simpletag(未讲)

和自定义filter类似,只不过接收更灵活的参数。

定义注册simple tag

@register.simple_tag(name="plus")def plus(a, b, c):    return "{} + {} + {}".format(a, b, c)

使用自定义simple tag

{% load app01_demo %}{
# simple tag #}{% plus "1" "2" "abc" %}

 

转载于:https://www.cnblogs.com/jassin-du/p/8318106.html

你可能感兴趣的文章
解决虚拟机迁移后的MAC地址问题
查看>>
Oracle网络公开课《文件系统迁移数据库到ASM存储》
查看>>
移动端mini mvvm框架实现
查看>>
thinkphp下配置和使用阿里云redis
查看>>
OpenStack Swift Replication
查看>>
Exchange Server 2007迁移Exchange Server 2010 (6) ---部署Exchange2010 服务器前
查看>>
OPNsense用户手册-系统运行状况和循环数据
查看>>
jenkins 远程连接linux配置
查看>>
HeartBeat基于CRM进行资源管理配置
查看>>
LoadLevelAsync显示加载进度
查看>>
再谈虚表
查看>>
Rest和RPC
查看>>
Linux crontab
查看>>
gdb中run出现的Missing separate debuginfos, use: debuginfo-install glib
查看>>
文件拷贝
查看>>
润乾集算报表呈现输出之精确打印
查看>>
Java多线程-新特征-障碍器
查看>>
TypeScript基础入门 - 类型兼容性 - 介绍
查看>>
print(),print_r(),echo()的区别
查看>>
我的友情链接
查看>>