一: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的更多相关文章

  1. Flask基础(02)-->搭建Flask项目虚拟环境

    什么是虚拟环境? 虚拟环境:其实就是一个文件夹,是python环境的复制 为什么要搭建虚拟环境? 因为一台计算机上可能要同时开发多个不同的项目,那么这些项目有可能用到同一个包的不同版本,如此一来,我们 ...

  2. Flask—06-理解掌握flask数据模型(02)

    数据模型 模型关系 一对多(使用最多) 一:学生(Student) 需要添加反向引用 多:文章(Article) 需要添加外键关联 一对一 一:学生(Student),主表 需要添加反向引用,在一对多 ...

  3. Flask Web开发从入门到放弃(一)

    第1章 章节一 01 内容概要 02 内容回顾 03 路飞学城之加入购物车 04 路飞学城之结算 05 路飞学城之立即支付 06 路飞学城之后续计划 07 Flask框架简介和快速使用 08 FLas ...

  4. Python-S9-Day125-Web微信&爬虫框架之scrapy

    01 今日内容概要 02 内容回顾:爬虫 03 内容回顾:网络和并发编程 04 Web微信之获取联系人列表 05 Web微信之发送消息 06 为什么request.POST拿不到数据 07 到底使用j ...

  5. 学习python-20191203-Python Flask高级编程开发鱼书_第02章 Flask的基本原理与核心知识

    视频01: 做一个产品时,一定要对自己的产品有一个明确的定位.并可以用一句话来概括自己产品的核心价值或功能. 鱼书网站几个功能 1.选择要赠送的书籍,向他人赠送书籍(价值功能,核心价值的主线): 2. ...

  6. 02 flask源码剖析之flask快速使用

    02 flask快速使用 目录 02 flask快速使用 1.flask与django的区别 2. 安装 3. 依赖wsgi Werkzeug 4. 快速使用flask 5. 用户登录&用户管 ...

  7. flask --- 02. 路由, 初始化配置,蓝图

    一.Flask 路由 1.添加路由的方式 ① ② 实例: ① @app.route("/my_de") def detail() ② def detail() app.add_ur ...

  8. 02: flask 使用举例

    1.1 项目说明   https://github.com/rickyyangrui/Flask_web_demo1 1.项目文件结构 2.项目主文件 cssmin==0.2.0 Flask==0.1 ...

  9. 02 flask 请求钩子、异常捕获、上下文、Flask-Script 扩展、jinja2 模板引擎、csrf防范

    一 请求勾子 在客户端和服务器交互的过程中,有些准备工作或扫尾工作需要处理,比如: 在请求开始时,建立数据库连接: 在请求开始时,根据需求进行权限校验: 在请求结束时,指定数据的交互格式: 为了让每个 ...

随机推荐

  1. Linux GCC编译警告:Clock skew detected. 错误解决办法

    今天在虚拟机上用GCC编译一个程序的时候,出现了下面的错误: make: warning: Clock skew detected. Your build may be incomplete 试了ma ...

  2. 【codevs2495】水叮当的舞步

    题目描述 Description 水叮当得到了一块五颜六色的格子形地毯作为生日礼物,更加特别的是,地毯上格子的颜色还能随着踩踏而改变.为了讨好她的偶像虹猫,水叮当决定在地毯上跳一支轻盈的舞来卖萌~~~ ...

  3. 16-math_M_PI

    头文件math.h中宏定义的是M_PI#define M_PI 3.14159265358979323846所以不需要记忆PI的值了可以直接用

  4. 【Docker官方文档】理解Docker

    本文来自Docker的官方文档,详细介绍了Docker的体系结构.重要概念.内部工作机理等内容,推荐不了解Docker内部原理的同学阅读. 什么是Docker? Docker是一个用于开发.交付和运行 ...

  5. fopencookie函数详解

    今天看DPDK时,看到了fopencookie函数,以前基本没有用过该函数,乘此机会好好看看如何使用. 1. 函数头文件与函数原型 函数头文件: #include <stdio.h> 函数 ...

  6. shell chmod中数字与字母的含义

    数字与字母的组合是chmod命令赋予文件,目录访问权限的方式 访问权限:可读,可写,可执行 字母表示:r      , w    , x 数字表示:4     , 2     , 1        , ...

  7. launchpad, jira, github

    一.简介 http://segmentfault.com/q/1010000000165115

  8. Logistic Regression 用于预测马是否生病

    1.利用Logistic regression 进行分类的主要思想 根据现有数据对分类边界线建立回归公式,即寻找最佳拟合参数集,然后进行分类. 2.利用梯度下降找出最佳拟合参数 3.代码实现 # -* ...

  9. Cookie的有效访问路径

    Cookie 的 作用范围: Cookie详解:https://www.cnblogs.com/handsomecui/p/6117149.html 可以作用当前目录和当前目录的子目录. 但不能作用于 ...

  10. 【Azure Active Directory】单一登录 (SAML 协议)

    Azure Active Directory 支持 SAML 2.0 Web 浏览器单一登录 (SSO) 配置文件. 若要请求 Azure Active Directory 对用户进行身份验证时,云服 ...