python - 如何将文件发送到接受python烧瓶中表单数据的post方法,以及如何在被调用方法中检索文件和其他字段?
问题描述
我正在尝试这样的事情。
来电代码 -
files = {'file': open(file_name, 'rb').read()}
response = requests.post(url, headers=headers, data=metadata, files=files)
调用方法代码-
metadata = {}
for key, value in request.form.items():
metadata[key] = value
print(metadata)
print(type(metadata))
print("Request data")
print(request.data)
print("Files")
print(request.files)
print(request.files is None)
print('file' not in request.files)
被调用方法的输出为空
{}
<class 'dict'>
Request data
b''
Files
ImmutableMultiDict([])
False
True
有人可以告诉我如何解决这个问题吗?
解决方案
files = {'upload_file': open('file.txt','rb')}
values = {'DB': 'photcat', 'OUT': 'csv', 'SHORT': 'short'}
r = requests.post(url, files=files, data=values)
from flask import Flask, render_template, request, redirect, url_for
app = Flask(__name__)
@app.route('/')
def index():
return render_template('index.html')
@app.route('/', methods=['POST'])
def upload_file():
uploaded_file = request.files['file']
if uploaded_file.filename != '':
uploaded_file.save(uploaded_file.filename)
return redirect(url_for('index'))
推荐阅读
- oracle - 异常:批处理期间发生错误:ORA-01427:单行子查询返回多于一行
- python - 将元素写入另一个文件中的列表
- c# - iTextSharp XMLParser.Parse 反复抛出并吞下异常
- r - 基于具有相似命名结构的多个列进行过滤
- pdf - Popups block bulk download of pdfs from website with wget
- c++ - 由于 If 语句中的语法错误,GNU Make 退出
- dart - Dart - NoSuchMethodError:类“模块”没有实例获取器“字符串”
- tinymce - TinyMCE:通过下拉插入简单的文本片段?
- java - 存储值而不覆盖
- google-cloud-platform - Google Cloud CDN 从日志中获取边缘位置