day70
1 虚拟环境
-1 pycharm里创建
-2 用命令串讲
2 视图层:
1 Request对象---GET,POST,method,body,FILES,META,path(只是路径),get_full_path(拿到全路径,带数据),
2 HttpResponse对象--->render,redirect,HttpResponse,JsonResponse(返回json格式)
3 反向解析--->在视图层:本质为了去除地址,重定向来用;在模板层:取出地址,为了发请求来用
4 JsonResponse:JsonResponse(dic,json_dumps_params={'ensure_ascii':False})---中文显示编码问题
5 FBV和CBV
from django.views import View
class Test(View)
def get(self,request):
pass
def post(self,request):
pass
6 django 2.0的path,re_path
1 re_path跟原来的url一毛一样
2 path:准确路径
3 path 内置转换器:5个 int,str,path....用法:<int:year>
4 自定义转换器:
<yyy:year>
7 文件上传
1 html页面上指定编码格式:enctype="multipart/form-data"
2 视图层:request.FILES(字典),可以根据名字,把文件取出来
-myfile=request.FILES.get('文件名字')--->得到文件对象
3 for循环文件对象,保存到本地,文件名字:myfile.name
今日内容:(模板层)
1 模版语法之变量:详见源码
-{{ 变量 }}:******重要******{#相当于print了该变量#}
-深度查询---->统一都用句点符 .
2 模版之过滤器
-语法:{{第一个参数|过滤器名字:第二个参数}}
-常用过滤器:(详细用法见源码)
-length
-default
-slice
-date
-filesizeformat
-truncatechars
-truncatewords
-safe
-add
3 模版之标签
-{% 标签 %}
-for:forloop:对象(里面有好多东西:parentloop,last,first,counter....)忘记的话, 自己打印一下
empty:被循环的对象是空,才走它
for循环可以嵌套,也可以用if
-if:
{% if forloop.first %}
<p>第一次的我 </p>
{% elif forloop.last %}
<p>最后的我 </p>
{% else %}
<p>{{ foo }}</p>吧
{% endif %}
-with:重命名,应用在变量名过长
********都要有结束********
4 自定义标签和过滤器
--***标签不能用在if判断,过滤器,可以用在if判断
-自定义过滤器
-1 先app是不是已经在setting中注册
-2 在app下创建一个templatetags(****名字不能变***)的文件夹(模块)
-3 在模块下创建一个py文件,名字随意:mytag.py
-4 # 第一步,导入template
from django.template import Library
# 第二步,定义一个叫register的变量=template.Library()
register = Library()
-5 写一个函数,用@register.filter(name='yyy')装饰一下(可以指定别名)
def str_add(str1, str2): #一定要有返回值
# 业务逻辑很复杂
return str1 + str2
-6 在模板里:(新定定义的标签,过滤器,都要重启程序)
-{% load mytag %}
-{{'lqz'|str_add:'nb'}}
-自定义标签:
-1-4:前4步,根过滤器的定义完全一样
-5 只是装饰器不一样
@register.simple_tag()
def add_nb(value):
return value+'nb'
-6 在模板里:(多个参数,以空格区分)
-{% load mytag %}
-{% add_nb 'lqz'%}
day70的更多相关文章
- day70 cookie & session 前后端交互分页显示
本文转载自qimi博客,cnblog.liwenzhou.com 概要: 我们的cookie是保存在浏览器中的键值对 为什么要有cookie? 我们在访问浏览器的时候,千万个人访问同一个页面,我们只要 ...
- python 全栈开发,Day70(模板自定义标签和过滤器,模板继承 (extend),Django的模型层-ORM简介)
昨日内容回顾 视图函数: request对象 request.path 请求路径 request.GET GET请求数据 QueryDict {} request.POST POST请求数据 Quer ...
- day70 csrf简单用法 &Django ContentType
一. 什么是跨站请求伪造 CSRF def transfer(request): if request.method =='POST': from_ =request.POST.get('from') ...
- day70 12-存储过程和存储函数
什么是相关子查询? 这是一个子查询,子查询本身又是一个多表查询.where不能用组函数,但是可以用字符函数instr().除了order by排序没有考,查询语句的所有内容都考了.这个题有点难度. 今 ...
- day70 django中间件
目录 一.django的七个中间件 二.如何自定义中间件 1 自定义中间件的创建方式 2 django提供自定制中间件的五个方法 2.1 必须掌握两个方法 2.2 了解方法 三.csrf跨站请求伪造校 ...
- day70:Vue:Git&路飞学城页面效果
目录 1.Git 2.路飞学城项目页面效果 0.安装elements UI 1.顶部导航栏效果 2.轮播图效果 1.Git 什么是git?分布式版本管理工具 1.git操作 # 1 创建git本地仓库 ...
- 100 天从 Python 新手到大师
Python应用领域和就业形势分析 简单的说,Python是一个“优雅”.“明确”.“简单”的编程语言. 学习曲线低,非专业人士也能上手 开源系统,拥有强大的生态圈 解释型语言,完美的平台可移植性 支 ...
- orm 复习
day70 2018-05-14 1. 内容回顾 1. ORM 1. ORM常用字段和属性 1. AutoField(primary_key=True) 2. CharField(max_length ...
- Django之ORM操作
Django之ORM操作 前言 Django框架功能齐全自带数据库操作功能,本文主要介绍Django的ORM框架 到目前为止,当我们的程序涉及到数据库相关操作时,我们一般都会这么搞: 创建数据库,设计 ...
随机推荐
- Python 多线程、多进程 (二)之 多线程、同步、通信
Python 多线程.多进程 (一)之 源码执行流程.GIL Python 多线程.多进程 (二)之 多线程.同步.通信 Python 多线程.多进程 (三)之 线程进程对比.多线程 一.python ...
- equals与hashcode区别
哈希码: hashCode的作用是用来获取哈希码,也可以称作散列码.实际返回值为一个int型数据.用于确定对象在哈希表中的位置. Object中有hashcode方法,也就意味着所有的类都有has ...
- SD从零开始57-58,第三方订单处理,跨公司销售
[原创] SD从零开始57 第三方订单处理流程 第三方订单处理的流程Processes for Third-Party Order Processing 客户的采购订单首先在你公司的一个销售组织作为一 ...
- onlyoffice文档协作的权限开发,利用casbin和golang语言
登录用户,对于已经进行了权限设置的文档,将根据权限数据库,比对用户名,当与用户有关时,就显示相对应的权限,当都与登录用户无关时,则显示拒绝访问: 对于未登录用户,已经设置了权限的文档,都将显示拒绝访问 ...
- 移动端采坑:Position: fixed 在Safari上的Bug
Position: fixed 在IOS上的显示效果 会出现两种情况: 点击fixed定位的元素会出现fixed定位失效导致的元素贴向底部,即position: absolute,bottom: 0p ...
- CSS样式----CSS样式表的继承性和层叠性(图文详解)
本文最初于2017-07-29发表于博客园,并在GitHub上持续更新前端的系列文章.欢迎在GitHub上关注我,一起入门和进阶前端. 以下是正文. 本文重点 CSS的继承性 CSS的层叠性 计算权重 ...
- 在PHP中避免一些代码中的坏味道
做PHP开发已经有快一年的时间了,在这一年的时间中,学习了很多生产环境中的技巧,学习了很多东西,期间也阅读了一些优秀的源码和关于代码的书,对写代码这一块有了一定的思考,也看过很多别人写的好的代码和坏的 ...
- 针对于多个inner join或者left join多条件查询的时候,各个inner join 的指向问题
转自https://blog.csdn.net/ck457897564/article/details/52487684 先看一段代码吧: <span style="font-size ...
- MySQL 8.0.2: Introducing Window Functions
July 18, 2017MySQL, SQLDag Wanvik MySQL 8.0.2 introduces SQL window functions, or analytic functions ...
- 远程监控tomcat内存使用
边界远程Tomcat服务器的Tomcat配置文件,如下: vi /etc/init.d/tomcatd8_test export JAVA_OPTS="-Xms1024m -Xmx4056m ...