Django1.11基础视图
Django视图
路由命名与reverse反解析
在项目urls中的include函数,使用namespace参数定义路由命名空间
- url(r'^',incude('book.urls',namespqce='book'))
- 命名空间表示,凡是book.urls中定义的路由,均属于namespqce指明的book名下
命名空间的作用:避免不同应用中的路由使用了相同的名字发生冲突,使用命名空间区别开
定义普通路由时,采用name参数指明路由的名字
根据路由的名称,返回具体的路径
- reverse('namespace:name')
reverse('name')
HttpRequest对象
from django.http import HttpResponse
Url路径参数
- 127.0.0.1:8000/book/1/200
- 路由中使用正则分组接受
- url(r('book/(?P\d+)/(?P\d+)'), views.get_url)
- 视图中接受关键字参数
def get_url(request,cat_id,goods_id):
Django中的QueryDict对象
- 可以一键多值的字典
- HttpResponse对象的属性GET,POST获取的都是QueryDict对象
- get('键', 默认值)
- 获取此键的值,获取不到返回默认值
- getlist('键',默认值)
获取此键的所有值,获取不到返回默认值
查询字符串Query String
- 127.0.0.1:8000/book?k1=v1&k2=v2&k2=v3
- 查询字符串不区分请求方式,即使客户端进行POST方式进行请求,依然可以通过request.GET获取请求中的查询字符串数据
def get_str(request):
dict = request.GET
v1 = dict.get('k1')
v2_v3 = dict.getlist('k2')
return HttpResponse('get_str_ok')请求体
- 表单类型Form Data
- 表单类型的请求体数据,可以通过request.POST属性获取,返回QueryDict对象
- def get_form(request):
dict = request.POST
v1 = dict.get('k1')
v2_v3 = dict.getlist('k2')
return HttpRequest('get_form_ok')
- 非表单类型Non-Form Data
- 非表单类型的请求数据,Django无法自动解析,
通过request.body属性获取原始的请求数据,自己按照请求体格式(JSON,XML)手动解析
request.body返回bytes类型- JSON数据
- import json
def post_json(request):
json_str = request.body
req_data = json.loads(json_str)
# 获取到字典
return HttpResponse('ok')请求头
- JSON数据
- 非表单类型的请求数据,Django无法自动解析,
- request.META
获取请求头中的数据,返回字典类型
其他HttpRequest对象属性
- request.methos
request.user
HttpResponse对象
HttpResponse
- from django.http import HttpResponse
- HttpResponse(,content=响应体,content_type=响应体数据类型,status=状态吗)
response = HttpResponse(响应体)
response.status_code=400 # 状态码
response['itcast'] = 'python' # 自定义响应头
return responseHttpRespnse子类
快速设置状态吗
JsonResponse
- 自动将数据转换为json字符串
自动设置响应头Content-type为application/jsonreturn JsonResponse({'city': 'beijing', 'subject': 'python'})
redirect重定向
return redirect('/get_header')
状态保持
Cookie
- 设置Cookie
- HttpResponse.set_cookie(cookie名,value=cookie值,max_age=cookie有效期)
- 读取cookie
- request.COOKIES
- 返回字典类型数据
- request.COOKIES
- 删除cookie
response.delete_cookie('cookie键')
Session
- Django默认启用session
- session存储的位置
- 数据库
- 本地缓存
- 混合存储
- redis:分布式
- session操作
- request.session['键']=值
- 设置session
- request.session.get('键',默认值)
- 获取session
- request.session.clear()
- 删除session值
- request.session.flush()
- 删除session键和值
- del request.session['键']
- 删除指定键和值
- request.session.set_expiry(value)
- 设置有效期
- value是一个整数,则value秒后过期
- value为0,会话结束过期
- value为None,采用默认有效期,两周
- request.session['键']=值
XMind: ZEN - Trial Version
Django1.11基础视图的更多相关文章
- UI基础视图----UIWebView总结
UIWebView是UIKit框架中继承于UIView的一个常用的基础视图,和UILabel,UIImageView是兄弟类,用于展示一个网页. UIWebView是一个可以设置代理的类,在加载的不同 ...
- Django1.11搭建一个简易上传显示图片的后台
本文为作者原创,转载请注明出处(http://www.cnblogs.com/mar-q/)by 负赑屃 项目展示需要,之前没研究过Django,网上查资料快速做了一个后台,写下了防止自己忘了. p ...
- Python-Django Win7上使用Apache24和mod_wsgi部署Django1.11应用程序
Win7上使用Apache24和mod_wsgi部署Django1.11应用程序 by:授客 QQ:1033553122 测试环境 win7 64 Django-1.11.4.tar.gz 下载地址: ...
- 11.Mysql视图
11.视图11.1 什么是视图 视图view是一张虚拟表,它不存储数据,数据仍在表里,视图由一条查询表的select语句创建,视图只存储select语句. 可以将复杂的查询语句封装成视图,用户可以从视 ...
- Django1.11 的serializers序列化model
开发环境:Django1.11 Python3 如果想把很多model转化成json格式可以直接这样写: from django.views.generic.base import View fro ...
- Django1.11配合uni-app发起微信支付!
Django1.11配合uni-app发起微信支付! 经过三天的断断续续的奋战,我终于是干动了微信支付.为了以后不忘记,现在来一篇教程,来来来,开干!!! 一.准备阶段 1.准备阶段我们需要去微信官网 ...
- Python3.7&Django1.11.15 兼容性问题
环境: 1. Windows10 2. python3.7 3. Django1.11.15 启动Django时抛出以下异常: Unhandled exception in thread starte ...
- python3.7环境下创建app、运行Django1.11版本项目报错Generator expression must be parenthesized
有些同学喜欢追求新鲜感~但追求新鲜感终归是要付出一点点代价的 在编程领域有一句至理名言:用东西不要用最新的! 就像每次苹果系统的升级都会有相当一部分用户的手机成砖一样 下面我们就介绍一个因版本升级带来 ...
- python3.7环境下创建app,运行Django1.11版本项目报错SyntaxError: Generator expression must be parenthesized
咳咳!!! 今天用命令行创建django项目中的app应用,出现了这样一个错误 这个错误在python3.6版本下安装运行django 1.11版本正常运行,但python3.7版本下运行django ...
随机推荐
- ACM-小偷的背包
题目描述:小偷的背包 设有一个背包可以放入的物品重量为S,现有n件物品,重量分别是w1,w2,w3,...,wn.问能否从这n件物品中选择若干件放入背包中,使得放入的重量之和正好为S.如果有满足条 ...
- B. RGB plants
B. RGB plants time limit per test 2.0 s memory limit per test 64 MB input standard input output stan ...
- created a ThreadLocal with key of type [oracle.jdbc.driver.AutoKeyInfo$1]
环境: spring4.3, mybatis3.5.2, ojdbc8_8c(oracle 18c jdbc) 调试状态下退出时,提示: 严重 [main] org.apache.catalina.l ...
- Golang的运算符-比较运算符
Golang的运算符-比较运算符 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.比较运算符概述 比较运算符也称为关系运算符,比较运算符返回的类型为bool类型,常见的比较运算符 ...
- HDU - 6143 Killer Names(dp记忆化搜索+组合数)
题意:从m种字母中选取字母组成姓名,要求姓和名中不能有相同的字母,姓和名的长度都为n,问能组成几种不同的姓名. 分析: 1.从m种字母中选取i种组成姓,剩下m-i种组成名. 2.i种字母组成长度为n的 ...
- golang用slice、list当queue
背景 golang没有queue这种类型,不过可以用slice.list模拟 slice当queue 声明队列 var queue []int 入队一个元素: queue = append(queue ...
- 九十、SAP中ALV事件之四,事件子例程的参数
一.我们按照之前SAP说明里面的文字,定义好相关内容 二.上图代码对应的文档错了,重现截图一下 三.这3个子例程是不需要写调用语句PERFORM的,在SAP内部已经写好了.程序会自动根据名字找到需要调 ...
- UVA - 1151 Buy or Build (买还是建)(并查集+二进制枚举子集)
题意:平面上有n个点(1<=n<=1000),你的任务是让所有n个点连通.可以新建边,费用等于两端点欧几里德距离的平方.也可以购买套餐(套餐中的点全部连通).问最小费用. 分析: 1.先将 ...
- 51nod 算法马拉松3 A:序列分解
序列分解 System Message (命题人) 基准时间限制:1 秒 空间限制:131072 KB 分值: 40 小刀和大刀是双胞胎兄弟.今天他们玩一个有意思的游戏. 大刀给小刀准备了一个长度为n ...
- PWC6199:Generated servlet error:Only a type can be imported. org.apache.jasper.tagplugins.jstl.core.ForEach resolves to a package
<%@ import="org.apache.jasper.tagplugins.jstl.core.ForEach"%> 去掉这条语句,就不报错了.所以问题就出在这里 ...