博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
04-request 对象
阅读量:7227 次
发布时间:2019-06-29

本文共 2192 字,大约阅读时间需要 7 分钟。

request 的form,data,args用法

获取请求参数

from flask import request

就是 Flask 中表示当前请求的 request 对象,request对象中保存了一次HTTP请求的一切信息。

# coding:utf-8from flask import Flask, requestapp = Flask(__name__)# 接口  api# 127.0.0.1:5000/index?city=shenzhen&country=china  查询字符串 QueryString@app.route("/index", methods=["GET", "POST"])def index():    # request中包含了前端发送过来的所有请求数据    # form和data是用来提取请求体数据    # 通过requset.form可以直接提取请求体中的表单格式的数据, 是一个类字典的对象    # 通过get方法只能拿到多个同名参数的第一个    name = request.form.get("name")    age = request.form.get("age")    name_li = request.form.getlist("name")    # 如果是请求体的数据不是表单格式的(如json格式),可以通过request.data获取    print("request.data: %s" % request.data)    # args是用来提取url中的参数(查询字符串)    city = request.args.get("city")    return "hello name=%s, age=%s, city=%s, name_li=%s" % (name, age, city, name_li)if __name__ == '__main__':    app.run(debug=True)

 发送表单数据

 

获取 url 后面接的参数

 

 发送json格式数据  

json 就是像Python Dict 的字符串类型

 

上传文件

已上传的文件存储在内存或是文件系统中一个临时的位置。你可以通过请求对象的 files 属性访问它们。每个上传的文件都会存储在这个字典里。它表现近乎为一个标准的 Python file 对象,但它还有一个 save() 方法,这个方法允许你把文件保存到服务器的文件系统上。这里是一个用它保存文件的例子:

# coding:utf-8from flask import Flask, requestapp = Flask(__name__)@app.route("/upload", methods=["POST"])def upload():    """接受前端传送过来的文件"""    file_obj = request.files.get("pic")    if file_obj is None:        # 表示没有发送文件        return "未上传文件"    with open("./test.png","wb") as f:        data = file_obj.read()        f.write(data)    return "上传成功"if __name__ == '__main__':    app.run(debug=True)

 

 secure_filename 获取文件在客户端的名字 

如果你想知道上传前文件在客户端的文件名是什么,你可以访问 filename 属性。但请记住, 永远不要信任这个值,这个值是可以伪造的。如果你要把文件按客户端提供的文件名存储在服务器上,那么请把它传递给 Werkzeug 提供的 secure_filename() 函数:

from flask import Flask, requestfrom werkzeug.utils import secure_filenameapp = Flask(__name__)@app.route("/upload", methods=["POST"])def upload():    """接受前端传送过来的文件"""    # file_obj = request.files.get("pic")     获取文件对象    file_obj = request.files["pic"]      if file_obj is None:        # 表示没有发送文件        return "未上传文件"    file_obj.save('./real_name:'+ secure_filename(file_obj.filename))       # 绝对路径保存到指定的文件目录下面 /home/wen/App/    return "上传成功"if __name__ == '__main__':    app.run(debug=True)

  

保存到绝对路径

 

转载于:https://www.cnblogs.com/wenyule/articles/10282637.html

你可能感兴趣的文章
非父组件通信
查看>>
Electron系列文章-主进程与渲染进程
查看>>
高性能缓存服务器 nuster v1.8.8.2 和 v1.7.11.2 发布
查看>>
教你快速入门ES6
查看>>
Python 爬虫十六式 - 第六式:JQuery的假兄弟-pyquery
查看>>
宜昌a货翡翠,包头a货翡翠
查看>>
【微信事业群】趣味面试算法题
查看>>
保守的国美再一次进击社交电商,前途未卜?
查看>>
git
查看>>
Python学习教程(Python学习路线):Python 3—手动创建迭代器
查看>>
说说如何在 Virtual Box 中新建 CentOS 虚拟机
查看>>
Cordova + Vue 实现点击两次退出应用
查看>>
JAVA 多用户商城系统b2b2c-Spring Cloud Stream 介绍
查看>>
spring cloud构建互联网分布式微服务云平台-SpringCloud集成项目简介
查看>>
基于房源的画像分析
查看>>
80% UI 初学者走过的弯路,你走了几条?
查看>>
文档和元素的几何滚动
查看>>
php 设计模式
查看>>
Java springcloud B2B2C o2o多用户商城 springcloud架构(八)springboot整合mongodb
查看>>
3年工作经验的Java程序员面试经过
查看>>