$Django 模板层(模板导入,继承)、 单表*详(增删改查,基于双下划线的查询)、static之静态文件配置
1 模版导入-->模板复用
1 写一个模板
2 在另一个模板中导入:{% include '模板.html'%}
2 模板的继承(相当于__init__)
1 写一个母版,留一个可扩展的区域(盒子),可以留多个盒子(留的越多,可扩展性越高)
{%block 名字%}
可以写内容
{%endblock%}
- <body>
<div class="head"></div>
<div class="container-fluid">
<div class="row">
<div class="col-md-3">
{% include 'left.html' %}
</div>
<div class="col-md-9">
{% block c1 %}
<p>wwww</p>
{% endblock c1 %}
</div>
</div>
</div>
</body>
2 在子模板中使用:
{% extend '母版.html'%}
{%block 名字%}
{{block.super}} #可继承母版盒子的内容
{{block.super}} #可继承母版盒子的内容
子模板的内容
{%endblock 名字%}
- {% extends '1.html' %}{# 继承 #}
{# {{ block.super }} {# 无效 #}
{#123321312312412412512 {# 无效 #}
{% block c1 %} {# 相当于子类定义__init__ ,没定义用父类的,定义了用自己的 #}
{{ block.super }}
{{ block.super }}
<p>呵呵</p>
<p>呵呵</p>
{% endblock c1 %}
3 静态文件相关
1 写死静态文件:<link rel="stylesheet" href="/static/css/mycss.css">
2 使用 static标签函数:
-{%load static%} #load是static.py文件
#static返回值,会拼上传参的路径
-{% static "css/mycss.css"%}
3 使用get_static_prefix 标签
-{%load static%}
#get_static_prefix返回值是:静态文件的地址,相当于/static/
-{% get_static_prefix %}css/mycss.css
- <link rel="stylesheet" href="/static/css/bootstrap.css">
{# {% load static %} {# static动态获取方式1 #}
{# <link rel="stylesheet" href="{% static 'css/bootstrap.css' %}">#}
{# {% load static %}{# 方式2 #}
{# <link rel="stylesheet" href="{% get_static_prefix %}css/bootstrap.css">#}
4 单表操作:注(1.分清QuerySet对象&个体对象&值 它们的方法2.QuerySet对象.query可以查看sql语句)
回顾:
注:创建orm对象映射关系
1.settings配置数据库
2.import pymysql
# 因为django默认链接mysql数据库,用的是MySQLdb模块,python3.0以后,不支持MySQLdb,需要用pymysql替换MySQLdb
pymysql.install_as_MySQLdb()
3.models 创建表
4.-数据迁移命令:
-python3 manage.py makemigrations --->只是对变化做一个记录,记录文件在app的migrations
-python3 manage.py migrate ---->把更改提交到数据库
-python3 manage.py showmigrations ---->查看那个没有提交到数据库
-查询api
<1> all(): Q@查询所有结果
<2> filter(**kwargs): Q@它包含了与所给筛选条件相匹配的对象
<3> get(**kwargs): 个@如果符合筛选条件的对象超过一个或者没有都会抛出错误。
<4> exclude(**kwargs): Q@除开
<5> order_by(*field): Q@排序 ('-id')降序
<6> reverse(): Q@对查询结果反向排序
<8> count(): 值@返回数据库中匹配查询(QuerySet)的对象数量。
<9> first(): 个@返回第一条记录
<10> last(): 个@返回最后一条记录
<11> exists(): 值@如果QuerySet包含数据,就返回True,否则返回False
<12> values(*field): Q@返回一个ValueQuerySet——一个特殊的QuerySet,运行后得到的并不是一系列
model的实例化对象,而是一个可迭代的字典序列
<13> values_list(*field): Q@它与values()非常相似,它返回的是一个元组序列,values返回的是一个字典序列
<14> distinct(): Q@去重
-基于双下划线的模糊查询
Book.objects.filter(price__in=[100,200,300])
Book.objects.filter(price__gt=100)
Book.objects.filter(price__lt=100)
Book.objects.filter(price__gte=100)
Book.objects.filter(price__lte=100)
Book.objects.filter(price__range=[100,200])
Book.objects.filter(title__contains="python")
Book.objects.filter(title__icontains="python") # 包含 忽略大小写
Book.objects.filter(title__startswith="py")
Book.objects.filter(pub_date__year=2012)
随机推荐
- 【转】Linux C下非特定波特率的配置和使用
https://blog.csdn.net/jinhongdu/article/details/43413071 对于非标准的任意波特率需要用ioctl(fd, TIOCGSERIAL, p)和i ...
- 有关mysql的innodb_flush_log_at_trx_commit参数
一.参数解释 0:log buffer将每秒一次地写入log file中,并且log file的flush(刷到磁盘)操作同时进行.该模式下在事务提交的时候,不会主动触发写入磁盘的操作. 1:每次事务 ...
- 【关键字】c++关键字
1. alignas (c++11) 设置类和struct的字节对齐方式 默认取值是: 2n : 0, 1, 2, 4 , 6, 8..... 2. alignof 区分sizeof(), alig ...
- request 和 response 对象
Request 对象 request 对象表示 HTTP 请求,包含了请求查询字符串,参数,内容,HTTP 头部等属性 常见属性 /* req.app:当callback为外部文件时,用req.app ...
- 错误 3 未找到类型“sdk:Label”。请确保不缺少程序集引用并且已生成所有引用的程序集。
错误: 错误 3 未找到类型“sdk:Label”.请确保不缺少程序集引用并且已生成所有引用的程序集. 错误 1 命名空间“http://schemas.microsoft.com/winfx/200 ...
- Sql显示16进制
select cast(id as varbinary(4)) from tableTest
- (一)python的前世今生
一:Python介绍 python的创始人为吉多·范罗苏姆(Guido van Rossum)(目前还活着),诞生于1989年,是一个脚本解释程序,由于python语言结构优美,清晰简单,随着人工智能 ...
- wordpress网站分类目录怎么排序
1.插件实现分类目录排序.安装插件My Category Order 启用插件,在控制面板的文章菜单下就出现如下图所示的目录调整选项,可以用鼠标随意拖曳调整目录排列顺序. 2.修改代码完成wordpr ...
- 迅为-IMX6开发板十层PCB制造,24小时开机测试,满负荷测试运行俩天,没有死机
迅为-IMX6开发板——工业主板的优势 1.元器件 IMX6工业主板选料,选用经过长时间.高要求验证元器件,保证产品在复杂条件下,耐高温.抗潮湿等工业场合的需求. 2.PCB设计 IMX6工业主板采用 ...
- 第20月第28天 tensorflow
1. 505 sudo pip install -i https://pypi.tuna.tsinghua.edu.cn/simple --upgrade virtualenv 506 virt ...