flask总结02
一:flask的响应:
flask默认支持2种响应方式: 数据响应: 默认响应html文本,也可以返回 JSON格式 页面响应: 重定向 url_for 响应的时候,flask也支持自定义http响应状态码
01:响应html文本
from flask import Flask, request
from settings.dev import DevConfig app = Flask(__name__)
app.config.from_object(DevConfig) @app.route("/test04")
def test04():
return "<h1> 这是相应html 文本的例子 </h1>" if __name__ == '__main__':
app.run()
相应效果:

02:返回JSON数据(需要导入jsonify)
案例代码:
from flask import Flask, request,jsonify
from settings.dev import DevConfig app = Flask(__name__)
app.config.from_object(DevConfig) @app.route("/test04")
def test04(): return "<h1> 这是相应html 文本的例子 </h1>" @app.route("/test05")
def test05():
data = [
{"id": 1, "username": "liulaoshi", "age": 18},
{"id": 2, "username": "liulaoshi", "age": 17},
{"id": 3, "username": "liulaoshi", "age": 16},
{"id": 4, "username": "liulaoshi", "age": 15},
] return jsonify(data) if __name__ == '__main__':
app.run()
浏览器效果:

03:重定向(需要导入from flask import Flask,redirect,url_for)
案例代码:
from flask import Flask, request,jsonify,redirect,url_for
from settings.dev import DevConfig app = Flask(__name__)
app.config.from_object(DevConfig) @app.route("/test04")
def test04(): return "<h1> 这是相应html 文本的例子 </h1>" @app.route("/test05")
def test05():
data = [
{"id": 1, "username": "liulaoshi", "age": 18},
{"id": 2, "username": "liulaoshi", "age": 17},
{"id": 3, "username": "liulaoshi", "age": 16},
{"id": 4, "username": "liulaoshi", "age": 15},
] return jsonify(data) @app.route("/test06")
def test06(): return redirect(url_for("test05")) if __name__ == '__main__':
app.run()
案例代码
案例显示结果:(地址栏很快就跳转到了test05)

04:重定向到带有参数的视图函数(在 url_for 函数中传入参数)
# 路由传递参数
@app.route('/user/<user_id>')
def user_info(user_id):
return 'hello %d' % user_id # 重定向
@app.route('/demo4')
def demo4():
# 使用 url_for 生成指定视图函数所对应的 url
return redirect(url_for('user_info', user_id=100))
05:自定义状态码
在 Flask 中,可以很方便的返回自定义状态码,以实现不符合 http 协议的状态码,例如:status code: 666
@app.route('/demo4')
def demo4():
return '状态码为 666', 400
二:会话控制(session和cookie)
01:设置cookie
设置cookie需要通过flask的Response响应对象来进行设置,由flask内部提供了一个make_response函数给我们可以快速创建响应对象
from flask import Flask,make_response
案例代码:
from flask import Flask, request,jsonify,redirect,url_for,make_response
from settings.dev import DevConfig app = Flask(__name__)
app.config.from_object(DevConfig) @app.route("/test07")
def test07():
resp=make_response('this is to set cookie')
resp.set_cookie("username","Tom",max_age=3600) #max_age=3600 有效时间秒 return resp if __name__ == '__main__':
app.run()
通过浏览器查看结果:

02:获取cookie
代码:
from flask import Flask, request,make_response
from settings.dev import DevConfig app = Flask(__name__)
app.config.from_object(DevConfig) #设置cookie
@app.route("/test07")
def test07():
resp=make_response('this is to set cookie')
resp.set_cookie("username","Tom",max_age=3600) return resp #获取cookie
from flask import Flask,request
@app.route("/get_cookie")
def resp_cookie():
resp=request.cookies.get("username")
print("cookie值是〉〉",resp) return "获取到的cookie值是:〉〉%s" % resp if __name__ == '__main__':
app.run()
显示结果:

03:设置session和获取session
对于敏感、重要的信息,建议要存储在服务器端,不能存储在浏览器中,如用户名、余额、等级、验证码等信息 在服务器端进行状态保持的方案就是`Session` 注意: **Session依赖于Cookie**,而且flask中使用session,需要配置SECRET_KEY选项,否则报错.
代码:
from flask import Flask, request,jsonify,redirect,url_for,make_response
from settings.dev import DevConfig app = Flask(__name__)
app.config.from_object(DevConfig) #设置session
from flask import Flask,session
@app.route("/test08")
def set_session():
session["username"]="One-Tom"
return "ok" #获取session
@app.route("/test09")
def get_cookie():
return session.get("username") if __name__ == '__main__':
app.run()
设置session的结果:

显示获取到的session结果:

flask总结02的更多相关文章
- Flask基础(02)-->搭建Flask项目虚拟环境
什么是虚拟环境? 虚拟环境:其实就是一个文件夹,是python环境的复制 为什么要搭建虚拟环境? 因为一台计算机上可能要同时开发多个不同的项目,那么这些项目有可能用到同一个包的不同版本,如此一来,我们 ...
- Flask—06-理解掌握flask数据模型(02)
数据模型 模型关系 一对多(使用最多) 一:学生(Student) 需要添加反向引用 多:文章(Article) 需要添加外键关联 一对一 一:学生(Student),主表 需要添加反向引用,在一对多 ...
- Flask Web开发从入门到放弃(一)
第1章 章节一 01 内容概要 02 内容回顾 03 路飞学城之加入购物车 04 路飞学城之结算 05 路飞学城之立即支付 06 路飞学城之后续计划 07 Flask框架简介和快速使用 08 FLas ...
- Python-S9-Day125-Web微信&爬虫框架之scrapy
01 今日内容概要 02 内容回顾:爬虫 03 内容回顾:网络和并发编程 04 Web微信之获取联系人列表 05 Web微信之发送消息 06 为什么request.POST拿不到数据 07 到底使用j ...
- 学习python-20191203-Python Flask高级编程开发鱼书_第02章 Flask的基本原理与核心知识
视频01: 做一个产品时,一定要对自己的产品有一个明确的定位.并可以用一句话来概括自己产品的核心价值或功能. 鱼书网站几个功能 1.选择要赠送的书籍,向他人赠送书籍(价值功能,核心价值的主线): 2. ...
- 02 flask源码剖析之flask快速使用
02 flask快速使用 目录 02 flask快速使用 1.flask与django的区别 2. 安装 3. 依赖wsgi Werkzeug 4. 快速使用flask 5. 用户登录&用户管 ...
- flask --- 02. 路由, 初始化配置,蓝图
一.Flask 路由 1.添加路由的方式 ① ② 实例: ① @app.route("/my_de") def detail() ② def detail() app.add_ur ...
- 02: flask 使用举例
1.1 项目说明 https://github.com/rickyyangrui/Flask_web_demo1 1.项目文件结构 2.项目主文件 cssmin==0.2.0 Flask==0.1 ...
- 02 flask 请求钩子、异常捕获、上下文、Flask-Script 扩展、jinja2 模板引擎、csrf防范
一 请求勾子 在客户端和服务器交互的过程中,有些准备工作或扫尾工作需要处理,比如: 在请求开始时,建立数据库连接: 在请求开始时,根据需求进行权限校验: 在请求结束时,指定数据的交互格式: 为了让每个 ...
随机推荐
- Select2 的使用
实现这个下拉列表框 下载这两个官网上的CSS,JS 官网地址 https://select2.org/getting-started/installation 我自己存的高速下载地址 http://y ...
- ubuntu 12.04 ubuntu System program problem detected 解决方法
1. ubuntu System program problem detected本人操作系统是ubuntu12.04,不知道是系统出了问题还是装的软件有问题,每次开机都出现:System progr ...
- Python2.7的安装、python3的安装
>登录python官网下载python2.7的相关版本 python官网链接 >根据平台选择相应的版本 >下载完毕后点击安装即可 >配置环境变量 >安装成功 2 pyth ...
- Python学习笔记_操作Excel
Python 操作Exel,涉及下面几个库: 1.xlrd 读取Excel文件 2.xlwt 向Excel文件写入,并设置格式 3.xlutils 一组Excel高级操作工具,需要先安装xlrd和xl ...
- java - Logback获取方法名称
java - Logback获取方法名称 摘自: https://blog.csdn.net/qq853632587/article/details/78222780 我们目前正在从 Log4J 迁移 ...
- App测试从入门到精通之更新测试
我们都知道,app在使用一段时间,都会有更新,而且更新会不止一次.在实际测试中,关于更新的测试场景也是我们需要重点关注的,接下来我们就看一下关于App的更新测试有哪些测试点我们需要注意: APP更新测 ...
- App测试从入门到精通之App分类和场景操作系统
App概要 APP是application的缩写.通常指的是手机软件上的应用,或称为手机客户端.手机app就是手机的应用程序.随着智能手机的越发普及,用户越发依赖手机软件商品店,app开发的需求与发展 ...
- oracle数据库基本操作
我们主要学习数据库的一些基本操作,比如如何在数据库创建用户,授权,删除用户,回收权限,为用户加锁或者解锁等一些常用的操作. 首先,我们要知道数据库中创建用户的语句怎么写,看下面: 1.创建用户 cre ...
- 无限级分类及生成json数据
第一步,先去数据库查询类别数据,然后交给生成json数据的函数处理,代码如下: /*生成类别JSON数据*/ public function wirteJson(){ $dataInfo = \thi ...
- 小学四则运算生成器(Java) 刘少允,梁新男
github传送门 项目相关要求 使用 -n 参数控制生成题目的个数.(实现) 使用 -r 参数控制题目中数值(自然数.真分数和真分数分母)的范围.(实现) 生成的题目中计算过程不能产生负数.(实现) ...