flask response 详解
from flask import Flask,Response,jsonify #Flask = werkzeug(处理网络的) + sqlalchemy(处理数据库的) + jinja2 (处理模板的) app = Flask(__name__) #讲视图函数中返回的字典,转换成json对象,然后返回
#restful-api class JSONResponse(Response): @classmethod
def force_type(cls, response, environ=None):
'''
这个方法只有视图函数返回非字符、非元祖、非Response对象才会调用
:param response:是视图函数的返回值
:param environ:
:return:
'''
print(response)
print(type(response))
if isinstance(response,(list,dict)): #jsonify除了将字典转换成json对象,还将对象包装成了一个Response对象
response = jsonify(response) return super(JSONResponse,cls).force_type(response,environ) #python 面向对象的一个知识点 super app.response_class = JSONResponse @app.route('/')
def helloworld():
return 'helloworld'#相当于 return Response(response='hello world',status=200,mimetype='text/html') #直接返回字符串不是更好吗
#为什么还要用Response返回字符串
#因为在某些场合要set_cookie的时候,就要在返回的相应中设置
@app.route('/show/')
def shop():
rep = Response('购买成功')
rep.set_cookie('商品',value='小米手机,iPad')
return rep @app.route('/list/')
def list0():
return Response(response='list',status=200,mimetype='text/html') @app.route('/list1/')
def list1():
return 'list1',200 #这里相当于一个元祖 @app.route('/list2/')
def list2():
return ['','',''] if __name__ == '__main__':
app.run(debug=True)
python中反射
反射:可以用字符串的方式去访问对象的属性,调用对象的方法(但是不能去访问方法),python中一切皆对象,都可以使用反射。 反射有四种方法: hasattr:hasattr(object,name)判断一个对象是否有name属性或者name方法。有就返回True,没有就返回False getattr:获取对象的属性或者方法,如果存在则打印出来。hasattr和getattr配套使用 需要注意的是,如果返回的是对象的方法,返回出来的是对象的内存地址,如果需要运行这个方法,可以在后面添加一对() setattr:给对象的属性赋值,若属性不存在,先创建后赋值 delattr:删除该对象指定的一个属性 # 什么是反射?可以用字符串的方式去访问对象的属性
class Test():
_name = "sss"
def fun(self):
return "Helloword" t = Test()
# print(hasattr(t,"_name")) #hasattr(obj,name)#查看类里面有没有name属性
# print(hasattr(t,"fun")) #True if hasattr(t,"_name"):
print(getattr(t,"_name")) #sss
if hasattr(t,"fun"):
print(getattr(t,"fun")()) #Helloword
if not hasattr(t,"age"): #如果属性不存在
print("没有该属性和方法,我来给设置一个")
setattr(t,"age","") #给t对象设置一个默认值,默认age=18
print(getattr(t,"age"))
getattr的详细使用:
class Func:
name = 'xiaowu' def func(self):
print('hello world') value = getattr(Func,'func') #类里面的属性,或类里的方法,在内存中的地址
value() #相当于 value = Func.func 后面加个括号就是调用它, print(value)
flask response 详解的更多相关文章
- JavaWeb学习篇之----容器Response详解
今天在来看一下Response容器的相关知识,其实这篇blog早就应该编写了,只是最近有点忙,所以被中断了.下面我们就来看一下Response容器的相关知识吧.Response和我们即将在后面说到的R ...
- Taffy Web开发,Python Flask实践详解
1. 前言 最近为Taffy自动化测试框架写了个页面,主要实现了用例管理.执行,测试报告查看管理.发送邮件及配置等功能. 2. 实现细节 页面使用Python Flask +Bootstrap开发,还 ...
- flask上下文详解
一.前言 了解过flask的python开发者想必都知道flask中核心机制莫过于上下文管理,当然学习flask如果不了解其中的处理流程,可能在很多问题上不能得到解决,当然我在写本篇文章之前也看到了很 ...
- Taffy自动化测试框架Web开发,Python Flask实践详解
1. 前言 最近为Taffy自动化测试框架写了个页面,主要实现了用例管理.执行,测试报告查看管理.发送邮件及配置等功能. 本页面适用所有基于taffy/nose框架编写的自动化测试脚本,或基于un ...
- python flask框架详解
Flask是一个Python编写的Web 微框架,让我们可以使用Python语言快速实现一个网站或Web服务.本文参考自Flask官方文档, 英文不好的同学也可以参考中文文档 1.安装flask pi ...
- Request和Response详解
转自:http://zhidao.baidu.com/link?url=8BI0cjlcFdBSJKHTZlpo874eqtbTJoZfrh3miQgM_05RvSER8skPiBc1wSPZtXT8 ...
- Flask Session 详解
会话session ,允许你在不同请求 之间储存信息.这个对象相当于用密钥签名加密的 cookie ,即用户可以查看你的 cookie ,但是如果没有密钥就无法修改它. from flask impo ...
- HttpServletResponse response详解
//内容类型和编码格式可以被调用多次,最后一次将覆盖之前的设置 //内容类型和编码格式必须在 //设置内容类型getWriter和getOutputStream方法之前调用,否则不起作用 //若未设置 ...
- flask 服务器详解
#!/usr/local/bin/python # coding=utf-8 from flask import Flask app = Flask(__name__) @app.route('/') ...
随机推荐
- 微信小程序data数组push和remove问题
因为在做一个小程序的demo时.由于不向后台请求数据,所以就涉及到对本地数据的操作,现在就做一些数组的增删 //添加新元素 addItemFn: function () { var { lists } ...
- Spring Boot干货系列:(十二)Spring Boot使用单元测试(转)
前言这次来介绍下Spring Boot中对单元测试的整合使用,本篇会通过以下4点来介绍,基本满足日常需求 Service层单元测试 Controller层单元测试 新断言assertThat使用 单元 ...
- mysql 递归查找所有子节点
select dept_id from ( select t1.dept_id,t1.parent_id, if(find_in_set(parent_id, @pids) > 0, @pids ...
- java8中规范的四大函数式接口
java8中规范的四大函数式接口: 1.Consumer<T> :消费型接口 void accept(T t); 2.Supplier<T> :供给型接口 ...
- ORACLE/SQL用函数进行每年,每月,每周,每日的数据汇总
15/03/21 用函数进行每年,每月,每周,每日的数据汇总 假设一个销售明细表 sale_detail 含有 国家(country),销售时间(sale_time),销售额(sale_money) ...
- py脚本修改后自动重启
在用socket.io, pika之类启动一个脚本死循环做server或者client的时候: 1脚本被编辑之后,是不会自动重启 2当代码报错的时候,会立即退出, 只能手动重新运行 python ap ...
- 计蒜客T2202 数三角形(提高组2017模拟赛(三)day2T3) LZOJ3878攻略
今天模拟赛考了一道计蒜客NOIP2017模拟赛(三)day2T3的数三角形,原题链接 https://nanti.jisuanke.com/t/T2202 ,LZOJ3878攻略.场上想了很久都没转化 ...
- create-react-app 构建的项目使用 css module 方式来书写 css
先 yarn eject 释放出来配置文件具体参见我之前写过相关的文章(这里不再重复), 找到 config 文件夹下的文件如下图所示: 找到如图所示的配置: 书写 css 的文件名例如(App.mo ...
- EL表达式无效问题
引起原因web.xml中: <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3// ...
- linux pwd指令的C实现
linux pwd指令的C实现 pwd指令的功能介绍 linux pwd命令用于显示工作目录 执行pwd命令可立刻得知当前所在工作目录的绝对路径名称. 示例: 查询系统手册 如图所示,getcwd的描 ...