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框架 到目前为止,当我们的程序涉及到数据库相关操作时,我们一般都会这么搞: 创建数据库,设计 ...
随机推荐
- Code Signal_练习题_variableName
Correct variable names consist only of English letters, digits and underscores and they can't start ...
- vue 相对路径的图片 不显示问题
例如 data () { return { img: '../../images/jifen/index/img_list_default_pic.jpg' //路径也没问题啊,怎么不显示呢,难道他瞎 ...
- 记录Ubuntu 16.04 安装Docker CE
一.Docker的两个版本 Docker有两个版本: 社区版(CE) 企业版(EE) Docker Community Edition(CE)非常适合希望开始使用Docker并尝试使用基于容器的应用程 ...
- AJAX删除事件与加载数据
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- 怎么给SharePoint得视图设置多个过滤条件? How to set multiple complex filter conditions to the SharePoint list view ?
平时会很容易遇到需要给视图设置复杂得过滤条件,如果是一两个条件还好多,如果条件超过四个,会比较麻烦,很容易会出现逻辑不清,或者没有按照你得意愿来过滤数据得问题. 解决方案: 设置计算列,calcula ...
- LevelDB源码分析--Cache及Get查找流程
本打算接下来分析version相关的概念,但是在准备的过程中看到了VersionSet的table_cache_这个变量才想起还有这样一个模块尚未分析,经过权衡觉得leveldb的version相对C ...
- IHttpModule 和 IHttpHandler 配置方法
<?xml version="1.0" encoding="utf-8"?> <configuration> <appSettin ...
- Python pip 安装与使用
pip 是 Python 包管理工具,该工具提供了对Python 包的查找.下载.安装.卸载的功能. 目前如果你在 python.org 下载最新版本的安装包,则是已经自带了该工具. Python 2 ...
- Linux系统之TroubleShooting(启动故障排除)
尽管Linux系统非常强大,稳定,但是我们在使用过程当中,如果人为操作不当,仍然会影响系统,甚至可能使得系统无法开机,无法运行服务等等各种问题.那么这篇博文就总结一下一些常见的故障排除方法,但是不可能 ...
- JavaScript中数组slice和splice的对比小结
前言 今天重温了一下Javascript,看到了数组的方法,其中有两个比较相似的方法——splice和splice,看着很像,就是多了一个p,但是用法却相当不一样. 在使用中,可以通过选择一个具有强语 ...