Flask框架 之request对象
一、request对象属性
属性 | 说明 | 类型 |
---|---|---|
data | 记录请求的数据,并转换为字符串 | * |
form | 记录请求中的表单数据 | MultiDict |
args | 记录请求中的查询参数 | MultiDict |
cookies | 记录请求中的cookie信息 | Dict |
headers | 记录请求中的报文头 | EnvironHeaders |
method | 记录请求使用的HTTP方法 | GET/POST |
url | 记录请求的URL地址 | string |
files | 记录请求上传的文件 | * |
二、form、data、args使用
- @app.route("/login", methods=["GET", "POST"])
- def login():
- print(request.data)
- # 获取表单提交的数据用request.form
- name = request.form.get("name")
- password = request.form.get("password")
- # 获取相同名称,返回列表
- name_li = request.form.getlist("name")
- # 获取queryString数据用
- city = request.args.get("city")
- # 判断请求类型
- if request.method == "GET":
- pass
- elif request.method == "POST":
- pass
- # 获取json数据
- j_name = request.json.get("name")
- return "name=%s, password=%s" % (name, password)
三、文件上传
前端代码:
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <title>文件上传</title>
- <link rel="stylesheet" href="/static/layui/css/layui.css" media="all">
- <style>
- .layui-upload {
- text-align: center;
- margin-top: 10%;
- }
- img {
- width: 200px;
- }
- </style>
- </head>
- <body>
- <div class="layui-upload">
- <button type="button" class="layui-btn" id="test1">上传图片</button>
- <div class="layui-upload-list">
- <img class="layui-upload-img" id="demo1">
- <p id="demoText"></p>
- </div>
- </div>
- <script src="/static/layui/layui.js" charset="utf-8"></script>
- <script>
- layui.use('upload', function () {
- var $ = layui.jquery
- , upload = layui.upload;
- //普通图片上传
- var uploadInst = upload.render({
- elem: '#test1'
- , url: '/upload'
- , before: function (obj) {
- //预读本地文件示例,不支持ie8
- obj.preview(function (index, file, result) {
- $('#demo1').attr('src', result); //图片链接(base64)
- });
- }
- , done: function (res) {
- //如果上传失败
- if (res.code > 0) {
- return layer.msg('上传失败');
- }
- //上传成功
- return layer.msg(res.msg);
- }
- , error: function () {
- //演示失败状态,并实现重传
- var demoText = $('#demoText');
- demoText.html('<span style="color: #FF5722;">上传失败</span> <a class="layui-btn layui-btn-xs demo-reload">重试</a>');
- demoText.find('.demo-reload').on('click', function () {
- uploadInst.upload();
- });
- }
- });
- });
- </script>
- </body>
- </html>
python脚本:
- @app.route("/upload", methods=["POST", "GET"])
- def upload():
- if request.method == "GET":
- return render_template("upload.html")
- elif request.method == "POST":
- files = request.files
- if "file" not in files:
- return json.dumps({"code": 1, "msg": "上传失败"})
- file = files.get("file")
- file.save("./static/upload/" + file.filename)
- return json.dumps({"code": 0, "msg": "上传成功"})
效果图如下:
Flask框架 之request对象的更多相关文章
- flask中的request对象方法
'accept_charsets','accept_encodings','accept_languages','accept_mimetypes','access_route','applicati ...
- Flask(7)- request 对象
Flask 中很重要的 request 对象 浏览器访问服务端时,向服务端发送请求 Flask 程序使用 request 对象描述请求信息 当你想获取请求体.请求参数.请求头数据的时候,就需要靠 re ...
- flask框架(七)——蓝图、请求上下文、g对象、信号、flask_session
蓝图 作用:对程序进行目录结构划分 不使用蓝图情况下,自己分文件 目录结构: -templates -views -__init__.py -user.py -order.py -app.py app ...
- Flask框架 (四)—— 请求上下文源码分析、g对象、第三方插件(flask_session、flask_script、wtforms)、信号
Flask框架 (四)—— 请求上下文源码分析.g对象.第三方插件(flask_session.flask_script.wtforms).信号 目录 请求上下文源码分析.g对象.第三方插件(flas ...
- python 之 Django框架(Django框架简介、视图装饰器、request对象、Response对象)
12.33 Django框架简介: MVC,全名是Model View Controller,是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model).视图(View)和控制器( ...
- flask的请求上下文request对象
Flask从客户端收到请求时,要让视图函数能访问请求对象request ,才能处理请求.我们可以将request对象作为参数传到试图函数里,比如: from flask import Flask, r ...
- [Django框架 - 静态文件配置、request对象方法初识、 pycharm链接数据库、ORM实操增删改查、django请求生命周期]
[Django框架 - 静态文件配置.request对象方法初识. pycharm链接数据库.ORM实操增删改查.django请求生命周期] 我们将html文件默认都放在templates文件夹下 将 ...
- Flask 框架入门
Flask Flask是一个使用 Python 编写的轻量级 Web 应用框架.其 WSGI 工具箱采用 Werkzeug ,模板引擎则使用 Jinja2 . 安装 Flask 依赖两个外部库, We ...
- Inside Flask - globals 全局变量(对象代理)
Inside Flask - globals 全局变量(对象代理) 框架是一个容器,在框架内编程,一般是要遵守框架的约定和使用模式.通常这样的模式是 IoC,即由框架调用用户的代码,而不是用户调用框架 ...
随机推荐
- spring中编程式事务控制
step1:配置xml文件 <!-- 事务管理bean --> <bean id="transactionManager" class="org.spr ...
- .NET中的PublicKeyToken以及强命名问题
在.NET的GAC出现之前,以前有DLL Hell的问题.这是由于当时对于共享的DLL的处理方式.是通过採用注冊表的方式实现的.当我们安装一个程序A的时候,这个程序包括一个共享的DLL,那么这个DLL ...
- spring mvc +Mybatis3.1 整合的时候异常
在使用Mybatis3.10+spring3.10+mybatis-spring-1.0.0集成,使用spring 时发生例如以下错误: 严重: Servlet.service() for servl ...
- javascript遍历数组的两种方法
var array=new Array(); array [0]="北京"; array [1]="天津"; ...//solution 1 for(var i ...
- python 【目录】
python[目录] python[第一篇]初识python python[第二篇]python基本数据类型 python[第三篇]python函数基础
- 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 ...
- 为JMenu中的JPopupMenu定制透明背景
最近研究了很久这个问题,从LookAndFeel到继承JPopupMenu或者JMenu都搞不定. 其实替换背景的话,只要在JMenuUI中设置Opaque(false) 再将背景设置透明就可以看到P ...
- ExecuteNonQuery()的用法
ExecuteNonQuery()的用法 下面我们将详细讲解如何在Page_Load()中对数据库的增加.删除.修改,最后我们再来总结一下ExecuteNonQuery(),ExecuteScalar ...
- 魏汝盼医学博士 - Judy Zhu Wei, M.D., F.A.C.O.G.
魏汝盼医学博士 - Judy Zhu Wei, M.D., F.A.C.O.G. 医院(诊所)名称:CAPRI妇产科诊所 妇产科,华人医生,微创妇科手术专科医生,女医生,fountai ...
- gitlab-ce平台调试
SMTP使用QQ exmail 遇到的问题:使用qinrui@easyunion.net对516059158@qq.com能发送验证邮件,但是无法打开验证连接