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. luogu P1972 [SDOI2009]HH的项链 |树状数组 或 莫队

    题目描述 HH 有一串由各种漂亮的贝壳组成的项链.HH 相信不同的贝壳会带来好运,所以每次散步完后,他都会随意取出一段贝壳,思考它们所表达的含义.HH 不断地收集新的贝壳,因此,他的项链变得越来越长. ...

  2. Java修炼——IO流的概念以及其分类

    IO流的基本概念: 流的原理: 1) 在 Java 程序中,对于数据的输入/输出操作以"流" (stream) 方式进行: 2) J2SDK 提供了各种各样的"流&quo ...

  3. 针对tomcat中startup启动服务器闪退的情况

    1.要保证你配置jdk环境变量无误:java环境变量配置详解. 2. 3.在环境变量中设置CATALINA_HOME:

  4. HYSBZ-2002弹飞绵羊

    某天,Lostmonkey发明了一种超级弹力装置,为了在他的绵羊朋友面前显摆,他邀请小绵羊一起玩个游戏.游戏一开始,Lostmonkey在地上沿着一条直线摆上n个装置,每个装置设定初始弹力系数ki,当 ...

  5. A.Two Rival Students

    题目:两个竞争的学生 链接:(两个竞争的对手)[https://codeforces.com/contest/1257/problem/A] 题意:有n个学生排成一行.其中有两个竞争的学生.第一个学生 ...

  6. F#周报2019年第50期

    新闻 Azure Functions 3.0系统上线 GC性能架构--第1部分 ConfigureAwait问题解答 介绍System.Threading.Channels Windows Serve ...

  7. imagenet-vgg-verydeep-19.mat格式详解

    .mat是matlab生成的文件.用matlab打开文件imagenet-vgg-verydeep-19.mat可以帮助理解其结构.matlab代码如下: a = open('D:\imagenet- ...

  8. 跨站脚本(XSS)备忘单-2019版

    这是一份跨站脚本(XSS)备忘录,收集了大量的XSS攻击向量,包含了各种事件处理.通讯协议.特殊属性.限制字符.编码方式.沙箱逃逸等技巧,可以帮助渗透测试人员绕过WAF和过滤机制. 译者注:原文由Po ...

  9. 【CSS】309- 复习 CSS盒模型

    点击上方"前端自习课"关注,学习起来~ 一.概念 CSS盒模型本质上是一个盒子,封装周围的HTML元素,它包括:外边距(margin).边框(border).内边距(padding ...

  10. 改变SecureCRT的背景颜色

    1.在使用secureCRT客户端时,可以连接服务器,默认为白色底. 2.要进行对把底色的白色改为黑色的底色,右击的窗口的位置. 3.下拉菜单中点击 Session Options 4.点击Appea ...