Response

  1. # -*- coding: utf-8 -*-  

  2. from flask import Flask, redirect, render_template, jsonify, send_file  

  3.     
     
  4. app = Flask(__name__)  

  5.     
     
  6.     
     
  7. @app.route('/')  

  8. def index():  

  9.     return redirect('/login')  # 跳转,重定向  

  10.     
     
  11.     
     
  12. @app.route('/login')  

  13. def login():  

  14.     return render_template('login.html')  # 返回模板有浏览器渲染  

  15.     
     
  16.     
     
  17. @app.route('/json')  

  18. def json():  

  19.     data = {  

  20.         "name": 'peach'  

  21.     }  

  22.     return jsonify(data)  # 返回json标准字符串  

  23.     
     
  24.     
     
  25. @app.route('/send_files')  

  26. def send_files():  

  27.     return send_file('Dockerfile')  # 返回文件(打开文件,并返回文件内容,自动识别)  

  28.     
     
  29.     
     
  30. app.run(host='0.0.0.0', debug=True)  

 
 

REQUEST

  1. Request是全局的需要导入  

  2.     
     
  3. from flask import Flask, request, render_template    

  4.     
     
  5. Request中from表单中取数据有两种方式  

  6.     
     
  7. 方式一:  

  8.     print(request.form.get('username'))    

  9. 方式二:  

  10.     print(request.form['username'])    

  11.     
     
  12.     
     
  13. 两者的区别,当没有'username'的时候,方式二会报错:Keyerror

视图代码如下:  

正确取值: 

KerError错误:  

 
 

Request对象参数解析

  1. @app.route('/login', methods=["POST", 'GET'])  

  2. def login():  

  3.     print(request.path)  # 获取请求地址  

  4.     print(request.url)  # 获取完整http url  

  5.     print(request.host_url)  # http主机地址端口  

  6.     print(request.host)  # 主机地址端口  

  7.     
     
  8.     print(request.method)  # 获取请求对象  

  9.     print(request.form)   # 请求表单内数据,  request.form.to_dict() 之间转换为字典格式  

  10.     print(request.args)  # 请求地址参数, 提取可以用request.args.get()  

  11.     print(request.values)  # 所有的args地址参数和form表单内参数 to_dict() 之间转换为字典格式,通常用来查看数据  

  12.     
     
  13.     print(request.json)  # json数据,如果请求头的类型是json,自动把form的数据序列化为json  

  14.     print(request.data)  # 如果请求头的类型是无法识别的时候,请求体的数据将原始储存,是bytes  
  15.     print(request.cookies) # 获取cookies
  16.     print(request.headers) # 获取请求头

  17.     my_file = request.files.get('my-file')  

  18.     print(my_file)  

  19.     my_file.save(my_file.filename)  # 保存图片  

  20.     
     
  21.     return render_template('login.html')  

HTML:

  1. <!DOCTYPE html>  

  2. <html lang="en">  

  3. <head>  

  4.     <meta charset="UTF-8">  

  5.     <title>LOGIN</title>  

  6. </head>  

  7. <body>  

  8. <form action="/login?a=1&b=2", method="post", enctype="multipart/form-data">  

  9.     用户名<input type="text", name="username">  

  10.     密码<input type="text", name="password">  

  11.     文件<input type="file" name="my-file">  

  12.     <input type="submit", value="登陆">  

  13. </form>  

  14. </body>  

  15. </html>  

 
 

运行结果如下:

因为我用的是docker环境,文件保存如下:

Flask request和response的更多相关文章

  1. flask中的response

    1.Response 在flask中你想向前端返回数据,必须是Response的对象,这里和django必须是HttpResponse 对象一样, 主要将返回数据的几种方式 视图函数中return 字 ...

  2. Falsk中的Request、Response

    Flask 中的Response 1.HTTPResponse('helloword') "helloword" from flask import Flask # 实例化Flas ...

  3. Request 和 Response 原理

    * Request 和 Response 原理:     * request对象和response对象由服务器创建,我们只需要在service方法中使用这两个对象即可        * 继承体系结构: ...

  4. Request 、Response 与Server的使用

    纯属记录总结,以下图片都是来自 ASP.NET笔记之 Request .Response 与Server的使用 Request Response Server 关于Server.MapPath 方法看 ...

  5. request 和response

    当今web程序的开发技术真是百家争鸣,ASP.NET, PHP, JSP,Perl, AJAX 等等. 无论Web技术在未来如何发展,理解Web程序之间通信的基本协议相当重要, 因为它让我们理解了We ...

  6. Request和Response对象

    Request 和 Response 对象起到了服务器与客户机之间的信息传递作用.Request 对象用于接收客户端浏览器提交的数据,而 Response 对象的功能则是将服务器端的数据发送到客户端浏 ...

  7. Java 中的 request 和response 理解

    request和response(请求和响应)  1.当Web容器收到客户端的发送过来http请求,会针对每一次请求,分别创建一个用于代表此次请求的HttpServletRequest对象(reque ...

  8. 【转】request和response的页面跳转传参

    下面是一位园友的文章: jsp或Servlet都会用到页面跳转,可以用 request.getRequestDispatcher("p3.jsp").forward(request ...

  9. LoadRunner中取Request、Response

    LoadRunner中取Request.Response LoadRunner两个“内置变量”: 1.REQUEST,用于提取完整的请求头信息. 2.RESPONSE,用于提取完整的响应头信息. 响应 ...

随机推荐

  1. 【CKB.DEV 茶话会】如何在 CKB 上实现用户自定义 Token

    本贴内容主要来自于 CKB.DEV 茶话会第一期,本期主题是:如何在 CKB 上实现 UDT,分享人是:Cipher 王博. 茶话会现场视频: https://v.qq.com/x/page/x303 ...

  2. Vue3.0常用代码片段和开发插件

    Vue3 Snippets for Visual Studio Code Vue3 Snippets源码 Vue3 Snippets下载 This extension adds Vue3 Code S ...

  3. 用IDEA详解Spring中的IoC和DI(挺透彻的,点进来看看吧)

    用IDEA详解Spring中的IoC和DI 一.Spring IoC的基本概念 控制反转(IoC)是一个比较抽象的概念,它主要用来消减计算机程序的耦合问题,是Spring框架的核心.依赖注入(DI)是 ...

  4. Python一秒搭建ftp服务器,帮助你在局域网共享文件【华为云技术分享】

    版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/devcloud/article/detai ...

  5. 从React 编程到"好莱坞"

    目录 概念 面向流设计 异步化 响应式宣言 参考文档 概念 Reactive Programming(响应式编程)已经不是一个新东西了. 关于 Reactive 其实是一个泛化的概念,由于很抽象,一些 ...

  6. 可能是全网最简单的 OpenStack 安装方式

    OpenStack 因为架构复杂,配置较多,一向以安装部署过程困难闻名.虽然 OpenStack 社区前后涌现出了很多的自动化部署工具,但是对于普通用户,特别是新人来说,上手仍然有难度. 使用本文介绍 ...

  7. Tomcat下载安装并部署到IDEA(附带idea两种热部署设置方法)

    目录 Tomcat下载教程 Tomcat安装教程 Tomcat热部署到IDEA idea两种热部署设置方法 使用Idea的时候,修改了代码,需要反复的重启Tomcat,查看效果,是不是贼烦?还记得刚上 ...

  8. 微服务管理平台nacos虚拟ip负载均衡集群模式搭建

    一.Nacos简介 Nacos是用于微服务管理的平台,其核心功能是服务注册与发现.服务配置管理. Nacos作为服务注册发现组件,可以替换Spring Cloud应用中传统的服务注册于发现组件,如:E ...

  9. HDU-1595Find the longest of shortest(最短路径的最长路Dijkstra+记录路径)

    Marica is very angry with Mirko because he found a new girlfriend and she seeks revenge.Since she do ...

  10. UESTC-1975弗吉桑(回文串,manacher算法)

    弗吉桑 Time Limit: 3000 MS     Memory Limit: 64 MB Submit Status 弗吉桑是一座横跨清水河大草原的活火山,位于子科技大学主楼东北方约 80km ...