一、request对象属性

属性 说明 类型
data 记录请求的数据,并转换为字符串 *
form 记录请求中的表单数据 MultiDict
args 记录请求中的查询参数 MultiDict
cookies 记录请求中的cookie信息 Dict
headers 记录请求中的报文头 EnvironHeaders
method 记录请求使用的HTTP方法 GET/POST
url 记录请求的URL地址 string
files 记录请求上传的文件 *

二、form、data、args使用

  1. @app.route("/login", methods=["GET", "POST"])
  2. def login():
  3. print(request.data)
  4. # 获取表单提交的数据用request.form
  5. name = request.form.get("name")
  6. password = request.form.get("password")
  7. # 获取相同名称,返回列表
  8. name_li = request.form.getlist("name")
  9. # 获取queryString数据用
  10. city = request.args.get("city")
  11. # 判断请求类型
  12. if request.method == "GET":
  13. pass
  14. elif request.method == "POST":
  15. pass
  16. # 获取json数据
  17. j_name = request.json.get("name")
  18. return "name=%s, password=%s" % (name, password)

三、文件上传

前端代码:

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>文件上传</title>
  6. <link rel="stylesheet" href="/static/layui/css/layui.css" media="all">
  7. <style>
  8. .layui-upload {
  9. text-align: center;
  10. margin-top: 10%;
  11. }
  12.  
  13. img {
  14. width: 200px;
  15. }
  16. </style>
  17. </head>
  18. <body>
  19. <div class="layui-upload">
  20. <button type="button" class="layui-btn" id="test1">上传图片</button>
  21. <div class="layui-upload-list">
  22. <img class="layui-upload-img" id="demo1">
  23. <p id="demoText"></p>
  24. </div>
  25. </div>
  26. <script src="/static/layui/layui.js" charset="utf-8"></script>
  27. <script>
  28. layui.use('upload', function () {
  29. var $ = layui.jquery
  30. , upload = layui.upload;
  31.  
  32. //普通图片上传
  33. var uploadInst = upload.render({
  34. elem: '#test1'
  35. , url: '/upload'
  36. , before: function (obj) {
  37. //预读本地文件示例,不支持ie8
  38. obj.preview(function (index, file, result) {
  39. $('#demo1').attr('src', result); //图片链接(base64)
  40. });
  41. }
  42. , done: function (res) {
  43. //如果上传失败
  44. if (res.code > 0) {
  45. return layer.msg('上传失败');
  46. }
  47. //上传成功
  48. return layer.msg(res.msg);
  49. }
  50. , error: function () {
  51. //演示失败状态,并实现重传
  52. var demoText = $('#demoText');
  53. demoText.html('<span style="color: #FF5722;">上传失败</span> <a class="layui-btn layui-btn-xs demo-reload">重试</a>');
  54. demoText.find('.demo-reload').on('click', function () {
  55. uploadInst.upload();
  56. });
  57. }
  58. });
  59. });
  60. </script>
  61. </body>
  62. </html>

python脚本:

  1. @app.route("/upload", methods=["POST", "GET"])
  2. def upload():
  3. if request.method == "GET":
  4. return render_template("upload.html")
  5. elif request.method == "POST":
  6. files = request.files
  7. if "file" not in files:
  8. return json.dumps({"code": 1, "msg": "上传失败"})
  9. file = files.get("file")
  10. file.save("./static/upload/" + file.filename)
  11. return json.dumps({"code": 0, "msg": "上传成功"})

效果图如下:

Flask框架 之request对象的更多相关文章

  1. flask中的request对象方法

    'accept_charsets','accept_encodings','accept_languages','accept_mimetypes','access_route','applicati ...

  2. Flask(7)- request 对象

    Flask 中很重要的 request 对象 浏览器访问服务端时,向服务端发送请求 Flask 程序使用 request 对象描述请求信息 当你想获取请求体.请求参数.请求头数据的时候,就需要靠 re ...

  3. flask框架(七)——蓝图、请求上下文、g对象、信号、flask_session

    蓝图 作用:对程序进行目录结构划分 不使用蓝图情况下,自己分文件 目录结构: -templates -views -__init__.py -user.py -order.py -app.py app ...

  4. Flask框架 (四)—— 请求上下文源码分析、g对象、第三方插件(flask_session、flask_script、wtforms)、信号

    Flask框架 (四)—— 请求上下文源码分析.g对象.第三方插件(flask_session.flask_script.wtforms).信号 目录 请求上下文源码分析.g对象.第三方插件(flas ...

  5. python 之 Django框架(Django框架简介、视图装饰器、request对象、Response对象)

    12.33 Django框架简介: MVC,全名是Model View Controller,是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model).视图(View)和控制器( ...

  6. flask的请求上下文request对象

    Flask从客户端收到请求时,要让视图函数能访问请求对象request ,才能处理请求.我们可以将request对象作为参数传到试图函数里,比如: from flask import Flask, r ...

  7. [Django框架 - 静态文件配置、request对象方法初识、 pycharm链接数据库、ORM实操增删改查、django请求生命周期]

    [Django框架 - 静态文件配置.request对象方法初识. pycharm链接数据库.ORM实操增删改查.django请求生命周期] 我们将html文件默认都放在templates文件夹下 将 ...

  8. Flask 框架入门

    Flask Flask是一个使用 Python 编写的轻量级 Web 应用框架.其 WSGI 工具箱采用 Werkzeug ,模板引擎则使用 Jinja2 . 安装 Flask 依赖两个外部库, We ...

  9. Inside Flask - globals 全局变量(对象代理)

    Inside Flask - globals 全局变量(对象代理) 框架是一个容器,在框架内编程,一般是要遵守框架的约定和使用模式.通常这样的模式是 IoC,即由框架调用用户的代码,而不是用户调用框架 ...

随机推荐

  1. spring中编程式事务控制

    step1:配置xml文件 <!-- 事务管理bean --> <bean id="transactionManager" class="org.spr ...

  2. .NET中的PublicKeyToken以及强命名问题

    在.NET的GAC出现之前,以前有DLL Hell的问题.这是由于当时对于共享的DLL的处理方式.是通过採用注冊表的方式实现的.当我们安装一个程序A的时候,这个程序包括一个共享的DLL,那么这个DLL ...

  3. spring mvc +Mybatis3.1 整合的时候异常

    在使用Mybatis3.10+spring3.10+mybatis-spring-1.0.0集成,使用spring 时发生例如以下错误: 严重: Servlet.service() for servl ...

  4. javascript遍历数组的两种方法

    var array=new Array(); array [0]="北京"; array [1]="天津"; ...//solution 1 for(var i ...

  5. python 【目录】

    python[目录] python[第一篇]初识python python[第二篇]python基本数据类型 python[第三篇]python函数基础

  6. Codeforces Round #214 (Div. 2) C. Dima and Salad 背包

    C. Dima and Salad   Dima, Inna and Seryozha have gathered in a room. That's right, someone's got to ...

  7. 为JMenu中的JPopupMenu定制透明背景

    最近研究了很久这个问题,从LookAndFeel到继承JPopupMenu或者JMenu都搞不定. 其实替换背景的话,只要在JMenuUI中设置Opaque(false) 再将背景设置透明就可以看到P ...

  8. ExecuteNonQuery()的用法

    ExecuteNonQuery()的用法 下面我们将详细讲解如何在Page_Load()中对数据库的增加.删除.修改,最后我们再来总结一下ExecuteNonQuery(),ExecuteScalar ...

  9. 魏汝盼医学博士 - Judy Zhu Wei, M.D., F.A.C.O.G.

    魏汝盼医学博士 - Judy Zhu Wei, M.D., F.A.C.O.G.         医院(诊所)名称:CAPRI妇产科诊所 妇产科,华人医生,微创妇科手术专科医生,女医生,fountai ...

  10. gitlab-ce平台调试

    SMTP使用QQ exmail 遇到的问题:使用qinrui@easyunion.net对516059158@qq.com能发送验证邮件,但是无法打开验证连接