flask响应

news2024/12/24 0:10:00

介绍

在flask中,响应的方式有很多种,可以是普通字符串、json数据、html文本、模板或者是重定向。视图函数的返回值会自动转换为一个响应对象

当响应对象是字符串时

  • 根据这个字符串和缺省参数自动生成一个用于返回的 响应对象

@app.route("/test")
def test():
    return "hello world test!!!!"
 

调用(从header中可以看出,响应的报文是文本内容)

图片

图片

当响应对象是字典时

  • 会自动调用 jsonify 创建一个响应对象

@app.route("/test2")
def test2():
    cc={"name":"zhangsan","age":11}
    return cc

调用

图片

图片

当响应对象是元组时

元组必需包含报文体,可以包含响应码和响应头,返回的元组如下

  • (response, status) 

  • (response, headers)  

  • (response, status, headers) 

响应码默认是200

@app.route("/test3")
def test3():
    # 设置响应体与状态码
    return {"name":"zhangsan","age":11},201

@app.route("/test4")
def test4():
    # 设置响应体与响应头
    return {"name":"zhangsan","age":11}, {"token":"dslfjlsf","phone":"133333333"}

@app.route("/test5")
def test5():
    # 设置响应体、状态码与响应头
    return {"name":"zhangsan","age":11}, 202,{"token":"dslfjlsf","phone":"133333333"}

调用1

图片

调用2

图片

图片

调用3

图片

图片

返回其它格式

  • 除了常用的Json和文本外,还有其它格式,如:html、xml等,这时我们可以用 render_template() 函数来进行处理。

  • 使用之前先导入

from flask import render_template
  • render_template(template_name_or_list,**context)  接收两个参数

    • template_name_or_list:一般传入模板的名称,模板必须放在脚本同级的 templates 目录下(手动建立此目录)

图片

  • context:上下文,一般模板里面有些需要替换的变量,可以通过这个参数传入,以键值对的形式

当响应对像是 html时

@app.route("/test6")
def test6():
    return render_template("demo.html",name="hello world!!!")

demo.html

<!DOCTYPE html>
<html lang="en">
<head>
</head>
<body>
    <h1>{{ name }}</h1>
</body>
</html>

调用

图片

当响应对像是 xml时

@app.route("/test7")
def test7():
    # 返回的是xml数据,需要设置响应头的 content-type,否则会被当成html数据
    return render_template("demo.xml",name="hello xml!!!"),{"content-type":"application/xml"}

demo.xml

<a>
    <b>
        {{ name }}
    </b>
    <c>
        我是xml
    </c>
</a>

调用

图片

图片

设置更多的响应数据——make_response()

  • 如果想设置更多的响应信息,如:cookie等,可以通过make_response()来获取一个响应对象,从而设置cookie和请求头

@app.route("/test8")
def test8():
    dict_data={"name": "zhangsan", "age": 11}
    resp=make_response(dict_data)

    resp.set_cookie("cookie1","aaaa")
    resp.headers["phone"]="133333333"

    return resp

图片

图片

结合render_template 使用

  • 定位到错误页面

@app.errorhandler(404)
def not_fund(error):
    resp=make_response(render_template("login_err.html"),404)
    resp.set_cookie("cookie1","aaaa")
    resp.headers["phone"]="133333333"
    return resp

login_err.html

图片

注:@app.errorhandler 修饰符,会将一个响应代码映射到一个视图函数上,这里是将404码,处理成一个个性的错误页面 

 程序猿与投资生活实录已改名为  程序猿知秋,WX 公众号同款,欢迎关注!​​​​​​​

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/827909.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

使用Debate Dynamics在知识图谱上进行推理(2020)7.31+8.1+8.2

使用Debate Dynamics在知识图谱上进行推理 摘要介绍背景与相关工作我们的方法状态action环境policiesDebate Dynamics裁判奖励报酬最大化和培训计划 实验数据集度量和评估方案结果 总结 摘要 我们提出了一种新的基于 Debate Dynamics 的知识图谱自动推理方法。 其主要思想是将…

2023年DevOps和云趋势报告!

要点 ●云创新已从革命性阶段转变为演进性阶段&#xff0c;重点是迁移和重新架构工作负载。云空间已发展为提供对可扩展资源和托管服务的按需访问&#xff0c;强调简化交互并减少团队的认知负担。 ●人工智能 (AI) 和大型语言模型 (LLM) 可以通过解决认知过载问题并支持即时管…

疯狂收割offer,全网最全接口测试面试题+答案,面试必刷题...

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 面试题&#xff1…

网络安全公司校招面试会面试那些问题?

面试官会从那些方面去考察面试者&#xff1f; 以某安全公司的技术支持工程师岗位为例 面试官可能会从网络技术、操作系统、数据库、项目经验、语言表达以及个人擅长技能方面展开 面试官会提出那些问题来考查面试者呢&#xff1f; 网络基础方面的问题&#xff1a;请介绍一下…

Gitlab CI/CD笔记-第一天-GitOps和以前的和jenkins的集成的区别

一、GitOps-CI/CD的流程图 简单解释&#xff1a; 1.提交代码 2.编译构建 3.测试 4.部署 二、gitlab的实现 1、Runer 1.这个就是jenkins里的worker-slave的角色&#xff0c; 2.git-lab server 下发任务&#xff0c;Runner执行。 3.这个R…

JZ67 把字符串转换成整数(atoi)

目录 一、题目 二、易错点代码 一、题目 把字符串转换成整数(atoi)_牛客题霸_牛客网 (nowcoder.com) 二、易错点代码 int类型运算可能出现溢出的现象&#xff0c;因此可采用将int类型数据的运算转换成long long类型 class Solution { public:int is(long long result)//用…

Emacs之编译系统文件cc-mode.el.gz(一百二十四)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 人生格言&#xff1a; 人生…

leetcode每日一练-第108题-将有序数组转换为二叉搜索树

一、思路 递归 二、解题方法 在给定中序遍历序列数组的情况下&#xff0c;每一个子树中的数字在数组中一定是连续的&#xff0c;因此可以通过数组下标范围确定子树包含的数字&#xff0c;下标范围记为 [left,right]。对于整个中序遍历序列&#xff0c;下标范围从 left0到 ri…

【MySQL】视图与用户管理

【MySQL】视图 视图视图概念使用基表与视图的相互影响 用户管理新增用户删除修改密码 用户权限授予权限回收权限 视图 视图概念 视图就是一张虚拟表&#xff0c;其内容由查询定义。与真实的表一样&#xff0c;视图包含一系列带有名称的列和行数据。视图的数据变化影响到基表&…

GEE学习02 --设置Jupyter Notebook的打开路径

直接双击Jupyter Notebook 桌面图标运行时&#xff0c;打开的文件路径是默认的&#xff1a;C&#xff1a;\用户\用户名 如果使用python命令提示符打开jupyter notebook &#xff0c; 而我新建的GEE学习文件夹在另一个路径&#xff0c;可以直接修改默认的保存路径&#xff1a;…

Ebay婴儿活动床栏CPC认证 ASTM F2085

活动床栏旨在防止儿童从床上掉落。活动床栏可以安装在床的一侧或床垫表面。活动床栏适用于可以在没有帮助的情况下上下床的儿童&#xff0c;通常为二至五岁的儿童。本政策涵盖泡沫、充气和刚性活动床栏。 根据亚马逊的要求&#xff0c;所有活动床栏均应经过检测&#xff0c;并且…

算法题--找规律(构建乘积数组、剪绳子、圆圈中最后剩下的数字)

目录 找规律 构建乘积数组 原题链接 解析 核心思想 答案 剪绳子 原题链接 解析 核心思想 答案 圆圈中最后剩下的数字 原题链接 解析 核心思想 答案 找规律 需要通过列举多个示例&#xff0c;从多个示例的输入到输出中得到规律去普遍化。 构建乘积数组 给定…

【黑马头条之kafka及异步通知文章上下架】

本笔记内容为黑马头条项目的kafka及异步通知文章上下架部分 目录 一、kafka概述 二、kafka安装配置 三、kafka入门 四、kafka高可用设计 1、集群 2、备份机制(Replication&#xff09; 五、kafka生产者详解 1、发送类型 2、参数详解 六、kafka消费者详解 1、消费者…

国内最大Llama开源社区发布首个预训练中文版Llama2

"7月31日&#xff0c;Llama中文社区率先完成了国内首个真正意义上的中文版Llama2-13B大模型&#xff0c;从模型底层实现了Llama2中文能力的大幅优化和提升。毋庸置疑&#xff0c;中文版Llama2一经发布将开启国内大模型新时代&#xff01; | 全球最强&#xff0c;但中文短板…

Ubuntu20.04进入桌面后左上角光标闪动

T 光标闪烁就是后台一系列活动的简化&#xff0c;它表示后台有一系列活动在进行&#xff0c;只是我们看不到。也因此让我们觉得它像是卡住了。 Y 一开始误以为是由于我安装其他启动动画导致的&#xff0c;后来换回默认的动画发现不是这个原因。 后来我试了各种方法&#xff…

Android安卓实战项目(7)---购物APP(源码在文末)

Android安卓实战项目&#xff08;7&#xff09;—购物APP&#xff08;源码在文末&#x1f415;&#x1f415;&#x1f415;&#xff09; 一.项目运行介绍 【bilibili展示】 https://www.bilibili.com/video/BV1xh4y1C7o1/?share_sourcecopy_web&vd_sourceb2e9b9ed746acd…

Linux系统安装部署MongoDB完整教程(图文详解)

前言&#xff1a;本期给大家分享一下目前最新Linux系统安装部署MongoDB完整教程&#xff0c;我的服务器采用的是Centos7&#xff0c;在部署之前我重装了我的服务器&#xff0c;目的是为了干净整洁的给大家演示我是如何一步步的操作的&#xff0c;整体部署还是挺简洁&#xff0c…

Vue3基础知识(待续)

Vue是什么 构用户界面的js的渐进式框架&#xff0c;基于htlm、css、js&#xff0c;并提供声明式组件化的编程模型&#xff0c;帮你高效开发用户界面。无论简单或复杂的界面Vue都可以胜任。 vue是一个框架&#xff0c;同时也是一个生态。因为有很多程序员支持vue&#xff0c;开…

【Python】Web学习笔记_flask(4)——钩子函数

钩子函数可以用来注册在请求处理的不同阶段执行出 Flask的请求钩子指的是在执行视图函数前后执行的一些函数&#xff0c; 之前是有4种&#xff0c;但是 before_first_request已经被删除了&#xff0c;使用时会报错 before_request&#xff1a;在每次请求前执行&#xff0c;…

Arc A770M的蝰蛇峡谷迷你电脑主机值得入手吗?

相比于已经走上正轨的NUC迷你电脑产品&#xff0c;英特尔的独显&#xff0c;特别是最新一代Arc&#xff08;锐炫&#xff09;还是犹抱琵琶半遮面。通过蝰蛇峡谷NUC&#xff0c;它算是正式亮相了。 这里的Serpent Canyon是英特尔NUC系列的最新产品。它在NUC 12 Enthusiast版本中…