bottle框架学习(四)为web客户端返回不同类型的数据
2018-03-14 17:17
274 查看
对于WSGI来说,python中的数据类型不能直接在业务函数中返回给客户端,bottle给予了某些类型和编码的转换支持。
WSGI, Web Server Gateway Interface
如全称代表的那样,WSGI不是服务器,不是API,不是Python模块,更不是什么框架,而是一种服务器和客户端交互的接口规范!更具体的规范说明请搜索“PEP 3333”。在WSGI规范下,web组件被分成三类:client, server, and middleware.WSGI apps(服从该规范的应用)能够被连接起来(be stacked)处理一个request,这也就引发了中间件这个概念,中间件同时实现c端和s端的接口,c看它是上游s,s看它是下游的c。WSGI的s端所做的工作仅仅是接收请求,传给application(做处理),然后将结果response给middleware或client.除此以外的工作都交给中间件或者application来做。
链接:https://www.zhihu.com/question/19998865/answer/26203965
来源:知乎
Content-Type设置为application/json
返回为空
Content-Length 设置为0
在业务函数中可以直接返回字符串,给浏览器返回内容
字符串经过编码形成的数据类型
虽然业务函数将字符串编码形成字节串,但是bottle框架依然能够正确解码成字符串,返回正确的结果。
修改为元组,返回也是相同的结果
但如果元组中嵌套有列表,就会出错
Response.content_type=’text/html;charset=gbk’
WSGI, Web Server Gateway Interface
如全称代表的那样,WSGI不是服务器,不是API,不是Python模块,更不是什么框架,而是一种服务器和客户端交互的接口规范!更具体的规范说明请搜索“PEP 3333”。在WSGI规范下,web组件被分成三类:client, server, and middleware.WSGI apps(服从该规范的应用)能够被连接起来(be stacked)处理一个request,这也就引发了中间件这个概念,中间件同时实现c端和s端的接口,c看它是上游s,s看它是下游的c。WSGI的s端所做的工作仅仅是接收请求,传给application(做处理),然后将结果response给middleware或client.除此以外的工作都交给中间件或者application来做。
链接:https://www.zhihu.com/question/19998865/answer/26203965
来源:知乎
字典
转换为JSON格式的数据Content-Type设置为application/json
from bottle import route,run @route('/') def index(): return {'a':'sunchengquan','b':8888,'c':8.888} run(host='localhost',port=80,debug=True,reloader=True)
空值
None,False,”“,[],()返回为空
Content-Length 设置为0
from bottle import route,run @route('/') def index(): return () run(host='localhost',port=80,debug=True,reloader=True)
字符串
依据Content-Type对其进行编码后返回在业务函数中可以直接返回字符串,给浏览器返回内容
字节串
bytes字符串经过编码形成的数据类型
fro a90f m bottle import route,run @route('/') def index(): htmlstr = 'asdfghjkl' return htmlstr.encode('utf-8') run(host='localhost',port=80,debug=True,reloader=True)
虽然业务函数将字符串编码形成字节串,但是bottle框架依然能够正确解码成字符串,返回正确的结果。
列表与元组
在业务函数中返回列表与元组时,bottle这个框架会将列表与元组中的元素用join进行合并,因此列表与元组中的元素应为字符串或字节串(不能混有字符串,字节串),并且不能返回嵌套的列表和元组from bottle import route,run @route('/') def index(): return ['sun','cheng','quan'] run(host='localhost',port=80,debug=True,reloader=True)
修改为元组,返回也是相同的结果
但如果元组中嵌套有列表,就会出错
from bottle import route,run @route('/') def index(): return ('sun','cheng','quan',['a','b']) run(host='localhost',port=80,debug=True,reloader=True)
业务函数中指定返回字符编码
Response.charset=’utf-8’Response.content_type=’text/html;charset=gbk’
from bottle import route,run,Response @route('/') def index(): # Response.charset='gbk' Response.content_type='text/html;charset=gbk' return 'bottle 是一个微框架' run(host='localhost',port=80,debug=True,reloader=True)
相关文章推荐
- ASP.NET MVC WebApi 返回数据类型序列化控制(json,xml) 用javascript在客户端删除某一个cookie键值对 input点击链接另一个页面,各种操作。 C# 往线程里传参数的方法总结 TCP/IP 协议 用C#+Selenium+ChromeDriver 生成我的咕咚跑步路线地图 (转)值得学习百度开源70+项目
- JAVA_WEB Oracle 10g学习:PL/SQL数据类型
- SVG实战开发学习(一)——基本数据类型和常见框架元素
- 【Spring学习笔记-MVC-5】利用spring MVC框架,实现ajax异步请求以及json数据的返回
- Web客户端数据存储学习笔记——Cookie
- ICE学习第四步-----客户端请求服务器返回数据
- Dwr框架在客户端远程调用方法返回自定义类型的例子
- 老鼠Atlas之旅(四):提交、返回复杂数据类型给web 服务
- Thinkphp框架下对某个字段查询数据的时候进行唯一过滤,返回唯一不同的值
- WEB前端学习 Day 6(Javascript 初识+变量+逻辑判断+数据类型)
- 学习altas笔记[客户端JS和Altas环境初始化关系和DataTable返回数据的客户端处理]
- 学习altas笔记[客户端JS和Altas环境初始化关系和DataTable返回数据的客户端处理]
- Web页面接受客户端POST数据,并且返回数据
- 学习altas笔记[客户端JS和Altas环境初始化关系和DataTable返回数据的客户端处理]
- Java Web服务器向Android客户端返回数据(服务器端)
- ext异步请求一个aspx/ashx/web service取得数据,服务端返回一个json.然后客户端接收并显示.
- android 客户端访问自己建立的服务器并返回JSON数据进行解析学习
- ISAPI之Http返回不同的数据类型
- 阿里RAP+fiddler实现app原生应用的cgi数据mock----- (二)添加mock规则,随机返回4中类型(不同长度)的数据
- JAVA_WEB Oracle 10g学习:Oracle 数据类型