Django框架之模板基础,静态文件配置
一、模板继承
目的是:减少代码的冗余
语法:
- {% block classinfo %}
- {% endblock %}
具体步骤:
1、创建一个base.html文件,
2、把要显示的页面的内容写在这里面,也就是html要在浏览器显示的内容
3、在right里面写个盒子
{% block classinfo %}
{% endblock %}
在这里面写个空盒子,以后谁来扩展就在这个盒子里面添加相应的内容就行了
4、然后再创建一个.html文件,让这个继承base.html文件,
{% extends "base.html" %} #必须是在文件的第一行
在基板里面添加内容
{% block classinfo %}
<h2>首页</h2>
<h2>学生信息</h2>
<h3>{{ class_id }}班</h3>
{% endblock%}
5、也可以写好多盒子,
在left中写个盒子
{% block menu %}
<p>I see you you</p>
{% endblock %}
注意:
盒子里面可以有默认的内容,如果有默认的时候你不扩展就走默认的,如果你扩展了,就替换了,
那么不替换直接追加可以嘛?可以的,那就用下面的方式。
{% block.super %}
例如:
- {% block menu %}
- {{ block.super }}
- <p>!!!</p> #先继承父类的,后插入数据
- {% endblock %}
1、模板继承围绕两点:继承和扩展
你有什么继承什么,
扩展的是盒子,
2、模板中设置的盒子越多越好,因为这样你想扩展的时候就容易了。我想扩展就扩展了。不扩展就不扩展了
3、为了更好的可读性,你也可以给你的 {% endblock %}
标签一个 名字 。例如:
- {% block content %}
- ...
- {% endblock content %}
4、如果你发现你自己在大量的模版中复制内容,那可能意味着你应该把内容移动到父模版中的一个 {% block %}
中。
最后,请注意你并不能在一个模版中定义多个相同名字的 block
标签。这个限制的存在是因为block标签的作用是“双向”的。这个意思是,block标签不仅提供了一个坑去填,它还在 _父模版_中定义了填坑的内容。如果在一个模版中有两个名字一样的 block
标签,模版的父模版将不知道使用哪个block的内容。
具体例子说明
urls.py
- urlpatterns = [
- url(r'^admin/', admin.site.urls),
- url(r'^text/(\d+)', views.text),
- ]
views.py
- from django.shortcuts import render,redirect
- # Create your views here.
- def text(request,class_id):
- # 班级变量
- print(class_id) #拿到的是你在路径里输入的几就是几
- # 数据库查询
- return render(request, "text.html", {"class_id": class_id})
templaite / base.html
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <meta http-equiv="X-UA-Compatible" content="IE=edge">
- <meta name="viewport" content="width=device-width">
- <link rel="stylesheet" href="/static/bootstrap-3.3.7-dist/css/bootstrap.min.css">
- <title>Title</title>
- <style>
- .right {
- height: 400px;
- background-color: silver;
- }
- </style>
- </head>
- <body>
- {#导航条#}
- <nav class="navbar navbar-primary navbar-inverse">
- <div class="container-fluid">
- <!-- Brand and toggle get grouped for better mobile display -->
- <div class="navbar-header">
- <button type="button" class="navbar-toggle collapsed" data-toggle="collapse"
- data-target="#bs-example-navbar-collapse-1" aria-expanded="false">
- <span class="sr-only">Toggle navigation</span>
- <span class="icon-bar"></span>
- <span class="icon-bar"></span>
- <span class="icon-bar"></span>
- </button>
- <a class="navbar-brand" href="#">Brand</a>
- </div>
- <!-- Collect the nav links, forms, and other content for toggling -->
- <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
- <ul class="nav navbar-nav">
- <li class="active"><a href="#">Link <span class="sr-only">(current)</span></a></li>
- <li><a href="#">Link</a></li>
- <li class="dropdown">
- <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true"
- aria-expanded="false">Dropdown <span class="caret"></span></a>
- <ul class="dropdown-menu">
- <li><a href="#">Action</a></li>
- <li><a href="#">Another action</a></li>
- <li><a href="#">Something else here</a></li>
- <li role="separator" class="divider"></li>
- <li><a href="#">Separated link</a></li>
- <li role="separator" class="divider"></li>
- <li><a href="#">One more separated link</a></li>
- </ul>
- </li>
- </ul>
- </div><!-- /.navbar-collapse -->
- </div><!-- /.container-fluid -->
- </nav>
- {#内容#}
- <div class="containers">
- <div class="row">
- <div class="col-md-11 col-lg-offset-1">
- {# 左侧#}
- <div class="left col-md-3">
- {% block menu %}
- <div class="list-group">
- <a href="#" class="list-group-item active">
- 学生班级
- </a>
- <a href="/text/6" class="list-group-item">s6</a>
- <a href="/text/7" class="list-group-item">s7</a>
- <a href="/text/8" class="list-group-item">s8</a>
- <a href="/text/9" class="list-group-item">s9</a>
- </div>
- {% endblock %}
- </div>
- {# 右侧#}
- <div class="right col-md-8">
- {# 定义一个盒子#}
- {% block classinfo %}
- {% endblock %}
- </div>
- </div>
- </div>
- </div>
- {#底部#}
- </body>
- </html>
template /text.py 继承上面的文件
- {% extends "base.html" %}
- {% block classinfo %}
- <h1>学生信息</h1>
- <h3>{{ class_id }}班级</h3>
- {% endblock %}
- {#追加#}
- {% block menu %}
- {{ block.super }}
- <a href="">学生信息</a>
- {% endblock %}
二、静态文件配置
我们自己导入的一些包就叫做静态文件
1、在全局中先创建一个static的包,
2、在static里面导入我们的bootstrap,还是jquery等
3、然后在settings.py中加上一些配置
- STATIC_URL = '/static/' #这个配置就相当于下面配置的别名,如果这里的名字修改了就按照这里的名字去导入
- STATICFILES_DIRS = [
- os.path.join(BASE_DIR,"static") #E:\day68\static 找到static路径
- ]
4、导入css,js,jquery
- <link rel = "stysheet",href= "/static/index.css/">
- <link rel="stylesheet" href="/static/bootstrap-3.3.7-dist/css/bootstrap.min.css">
Django框架之模板基础,静态文件配置的更多相关文章
- Django框架、HTTP协议、文件配置、路由设置、
1.socket服务端.py import socketsk = socket.socket()sk.bind(("127.0.0.1",8000))sk.listen()whil ...
- Django模版中加载静态文件配置详解
.settings.INSTALLED_APPS下添加:django.contrib.staticfiles .settings.py下添加:STATIC_URL = '/static/' . ()在 ...
- Django(五)框架之模板继承和静态文件配置
https://www.cnblogs.com/haiyan123/p/7731959.html 一.模板继承 目的是:减少代码的冗余 语法: {% block classinfo %} {% end ...
- Django框架之模板继承和静态文件配置
一.模板继承 目的是:减少代码的冗余 语法: {% block classinfo %} {% endblock %} 具体步骤: 1.创建一个base.html文件,2.把要显示的页面的内容写在这里 ...
- Django框架----模板继承和静态文件配置
母板 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8& ...
- Django框架(二)-- 基本配置:app注册、模板配置、静态文件配置、数据库连接配置post和get
一.app 在Django中,APP可以用以下类比 大学 --------------------项目 计算机学院------------app01 土木学院 ------------ app02 1 ...
- Django框架(二)—— 基本配置:app注册、模板配置、静态文件配置、数据库连接配置post和get
目录 app注册.模板配置.静态文件配置.数据库连接配置post和get 一.app 二.模板配置 三.静态文件配置 四.数据库连接配置 五.get请求和post请求 六.新手三件套 七.登录功能案例 ...
- [Django框架 - 静态文件配置、request对象方法初识、 pycharm链接数据库、ORM实操增删改查、django请求生命周期]
[Django框架 - 静态文件配置.request对象方法初识. pycharm链接数据库.ORM实操增删改查.django请求生命周期] 我们将html文件默认都放在templates文件夹下 将 ...
- Django框架之第二篇--app注册、静态文件配置、form表单提交、pycharm连接数据库、django使用mysql数据库、表字段的增删改查、表数据的增删改查
本节知识点大致为:静态文件配置.form表单提交数据后端如何获取.request方法.pycharm连接数据库,django使用mysql数据库.表字段的增删改查.表数据的增删改查 一.创建app,创 ...
随机推荐
- Jquery Deferred 详解
近期由于公司项目主要由我来负责前端,所以打算优化一下代码.在jquery 里面有个Deferred的对象.为了研究这个也看了不少资料,其中阮一峰的博客写的很详细,这里转载一下. 一.什么是deferr ...
- nginx-1.14.0安装
1.百度搜索Nginx,点击Nginx news官网,点击nginx-1.13.10进入下载网页,选择Stable version的版本之后下载. 2.进入根目录,cd / 3.在根目录下创建soft ...
- EasyUI combobox 加载JSON数据《一》
Action返回 JSON 格式如下: jsonResult = { total=7,rows=[ {TEXT=技术支持, ID=402894ca4419acf1014419b148a10000}, ...
- GridView解决同一行item的高度不一样,如何同一行统一高度问题?
问题描述: 有时我们使用GridView会面对类似这种情况. 这是是不是一脸愣逼,我们理想情况是把他变成这样 保证同一行的item都是一样高这样就美观许多了 注意:上面的两张图片是盗图,用来作为效果观 ...
- Enterprise Architect UML建模
UML建模 前言 UML建模资料已经很多了,有人想用有人不用,有人会用也有人不会用,本文只是作者的一篇UML建模总结,不想去写太细,因为真正的你去用下,去画下就基本都会了.工具毕竟是工具,设计和思想才 ...
- jQuery特效:图片的轮播
Flexslider图片轮播.文字图片相结合滑动切换效果 地址:http://www.helloweba.com/view-blog-265.html 示例:http://www.helloweba. ...
- 【转】 VC++6.0 在Win7 64位下调试,Shift+F5无法退出
Win7 64位VC++6.0调试代码无法关闭窗口解决方法 VC++6.0 在64位Windows7下调试的时候,再结束调试,程序无法退出,只能关闭VC++6.0 IDE环境. 问题描述:当我击F5开 ...
- String, JSONArray , JSONObject ,Map<String, Object> 与对象
String pic = "[{\"picServiceUrl\": \"0f4bb44afb2e48d48b786d3bbdeec283/20180408/6 ...
- webpack 从入门到工程实践
from:https://www.jianshu.com/p/9349c30a6b3e?utm_campaign=maleskine&utm_content=note&utm_medi ...
- SQL语句的添加、删除、修改多种方法 —— 基本操作
添加.删除.修改使用db.Execute(Sql)命令执行操作 ╔----------------╗ ☆ 数据记录筛选 ☆ ╚----------------╝ 注意:单双引号的用法可能有误(没有测试 ...