Flask实例教程四
一:Flask处理请求和回复
Flask和Werkzeug提供了request和response对象去处理请求和回复的数据。Flask通过@app.route包裹的函数(后面我们称这个函数叫做视图函数),来响应请求。
视图函数返回的值可以分为三类:
string:返回的就是普通的字符串。
一个response的实例:具备HTTP属性的一个响应的对象的实例。通过make_respone来构建
一个元组:(string,status)或者(string,status,http_headers)这样的结构,对于这种方式很方面不需要创建response的实例。
下面是这三种方式的例子:
# encoding=utf-8
from flask import Flask,make_responseapp = Flask(__name__)@app.route("/string/")
def return_string():return "Hello,world"@app.route("/object/")
def return_object():headers={'Content-Type':'text/plain'}return make_response('Hello,world',200,headers)@app.route("/tuple/")
def return_tuple():return "hello,world",304,{'Content-Type':'text/plain'}
三种方式的总结:
方式一: 最简单,最常用,后面可借助模板引擎输出html,但是不可以定制响应。
方式二:灵活性强,可对响应报文进行定制,定制status等等,但是需要创建一个response的实例
方式三: 具备方式二的优点,并且简单明了。
二:Flask request对象详解
通过下面的一个例子全面的去了解flask中的request对象:
# encoding=utf-8
from flask import Flask,requestapp = Flask(__name__)def dump_request_detail(request):request_detail="""
request.endpoint:{request.endpoint}
request.method:{request.method}
request.view_args:{request.view_args}
request.args:{request.args}
request.form:{request.form}
request.user_agent:{request.user_agent}
request.files:{request.files}
request.is_xhr:{request.is_xhr}
{request.headers}""".format(request=request).strip()return request_detail@app.before_request
def call_me():app.logger.debug(dump_request_detail(request))@app.after_request
def call_me(response):app.logger.debug("#After Request#\n"+repr(response))return response@app.route("/string/")
def return_string():return "Hello,World"
上面这个程序会通过app.logger.debug开启日志调试,通过在dos窗口下可以看下日志输出的信息。
重点介绍下before_request这个装饰器,这个装饰器包裹下的函数会在每次request前执行。
after_request会在每次request结束后执行。但是有一个情况就是如果一个request没有正常结束的话,那么after_request下包裹的函数是不会执行的。
那么就有另外一个装饰器teardown_request,这个装饰器无论请求是否正常结束都会执行的。
接下来开始运行上面的应用,并查看DOS窗口下的输出信息。
到此本节到此结束,更多知识还需要读者自己 进一步去了解。
转载于:https://blog.51cto.com/forlinux/1420968
Flask实例教程四相关推荐
- XPath实例教程四、[]的作用
方块号里的表达式可以进一步的指定元素, 其中数字表示元素在选择集里的位置, 而last()函数则表示选择集中的最后一个元素. /AAA/BBB[1] 选择AAA的第一个BBB子元素 &l ...
- 【Cocosd2d实例教程四】Cocos2d实现人物原地走动
(转载请注明出处:http://blog.csdn.net/buptgshengod) 1.首先安装TexturePacker 1)TexturePacker介绍 这是一款图片集合软件,生成.plis ...
- [Python][flask][flask-wtf]关于flask-wtf中API使用实例教程
简介:简单的集成flask,WTForms,包括跨站请求伪造(CSRF),文件上传和验证码. 一.安装(Install) 此文仍然是Windows操作系统下的教程,但是和linux操作系统下的运行环境 ...
- Flask从入门到做出一个博客的大型教程(四)
Flask从入门到做出一个博客的大型教程(四) 在开始之前,先来看下项目的整体结构. flask ├── app │ ├── forms.py │ ├── __init__.py │ ├── mode ...
- matlab实例 pdf,matlab65实例教程(含语句注释).pdf
matlab65实例教程(含语句注释).pdf 1 2. 基础准备及入门基础准备及入门 2.1 MATLAB 5.x 版对外部系统的要求版对外部系统的要求 2.2 MATLAB 的安装的安装 2.3 ...
- Silverlight实例教程 - Out of Browser在线更新和Silent安装
通过前几篇的学习和实践,相信大家可以很轻松的创建个性化Silverlight Out of Browser应用.上周,在银光中国网论坛有人问到对于Silverlight Out of Browser应 ...
- smarty实例教程
一.什么是smarty? smarty是一个使用PHP写出来的模板PHP模板引擎,它提供了逻辑与外在内容的分离,简单的讲,目的就是要使用PHP程序员同美工分离,使用的程序员改变程序的逻辑内容不会影响到 ...
- python Flask框架如何请求及返回数据——flask详细教程
python Flask框架如何请求及返回数据--flask详细教程 文章目录: 1 Flask介绍 1.1 Flask简单介绍 1.2 Flask相关资料信息 2 Flask快速入门 2.1 Fla ...
- XAML实例教程系列 – 对象和属性
在前一篇已经介绍XAML概念:"XAML语言是Extensible Application Markup Language的简称,英文发音是"zammel",中文称为&q ...
最新文章
- 编程软件python下载-python 2.7官方版
- 统计文件里有多少个字符(only a simple cpp)
- 用按钮控制歌单的上一曲和下一曲 0130 winform
- zookeeper启动失败
- 【解决】Windows Mobile 6 Professional SDK Refresh.msi 在xp上一直卡死
- python实现英文新闻摘要自动提取_自然语言处理之自动摘要
- 如何设定合理的安全工作指标
- python花瓣长度和花瓣宽度散点图鸢尾花_matplotlib可视化操作及案例分析
- switch开关语句
- 亚马逊电商可以用阿里云服务器吗
- winform直接控制云台_智云和快手发布重磅功能,手机云台升级,帮8成网民拍大片...
- 极速office(Word)怎么修改纸张方向
- 从CTF比赛真题中学习压缩包伪加密与图片隐写术【文中工具已打包】
- LeetCode 325. Maximum Size Subarray Sum Equals k
- 每一年,每一天,我们都在进步
- 下列属于计算机网络主要性能指标的有( ),下列属于计算机网络性能指标的有A.速率B.带宽C.时延D.误码率...
- addSuppressed异常抑制
- 阿里云OSS配合PicGo搭建图床
- 东野圭吾《梦幻花》读后感
- GaussDB高斯数据库(数据库基础知识)