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. Linux常用基本命令 (逐步添加)

    Linux jobs命令 fg , bg , jobs , & , ctrl + z都是跟系统任务有关 一.&命令 用在一个命令的最后,可以把这个命令放到后台执行 二.Ctrl + z ...

  2. iOS13暂时关闭黑暗模式+应用内状态栏无法显示问题解决办法

    现象: iOS13黑暗模式开启后,app显示会出现很多意外显示情况.暂时屏蔽是最好的选择.当开启黑暗模式,且在项目的target对应的info.plist中添加以下设置时(禁用黑暗模式): <k ...

  3. 即将到来的“分布式云”(DPaaS):分布式计算+ DB +存储即服务

    我在区块链会议上就即将到来的公共"分布式云"系统进行了讨论,该系统将主流的公共云平台(如AWS,Azure,Google Cloud,Heroku等)与区块链和P2P网络相结合,比 ...

  4. Unknown class XXViewController in Interface Builder file.”问题处理

    “Unknown class XXViewController in Interface Builder file.”问题处理   在静态库中写了一个XXViewController类,然后在主工程的 ...

  5. 服务容错保护hystrix

    灾难性雪崩效应 如何解决灾难性雪崩效应 降级 超时降级.资源不足时(线程或信号量)降级,降级后可以配合降级接口返回托底数据.实现一个 fallback 方法, 当请求后端服务出现异常的时候, 可以使用 ...

  6. jQuery中的基本选择器,id,class,元素,通用

    常用的基本选择器: 后续的补充选择器 为了后面看的方便,我们先将body中的内容展示出来: <body> <p> 账号:<input type="text&qu ...

  7. 第5节:Java基础 - 必知必会(下)

    第5节:Java基础 - 必知必会(下) 本小节是Java基础篇章的第三小节,主要讲述Java中的Exception与Error,JIT编译器以及值传递与引用传递的知识点. 一.Java中的Excep ...

  8. 2018ACM/ICPC 焦作网络预选赛-A Magic Mirror

    Jessie has a magic mirror. Every morning she will ask the mirror: 'Mirror mirror tell me, who is the ...

  9. ARTS-S c语言统计程序运行时间

    #include <stdio.h> #include <sys/time.h> #include <unistd.h> int main() { struct t ...

  10. 查看yum已安装的包

    在linux下如何使用yum查看安装了哪些软件包 列出所有已安装的软件包 yum list installed yum针对软件包操作常用命令: 1.使用 yum 查找软件包 命令:yum search ...