Python 使用Flask RESTFUL,如何在post方法之一中实现文件/照片上传?

Python 使用Flask RESTFUL,如何在post方法之一中实现文件/照片上传?,python,flask,flask-restful,Python,Flask,Flask Restful,事实上,我已经在这方面混了很长一段时间了,现在我遵循如下指示:, 甚至尝试使用flask上传(我无法正确导入,因为它一直说我无法导入扩展)。所以我将继续使用Flask上传照片的方法 不管怎么说,我觉得我的瓶子很标准: from flask import make_response, Flask, request, jsonify, redirect, url_for from flask.ext.sqlalchemy import SQLAlchemy from flask_restful im

事实上,我已经在这方面混了很长一段时间了,现在我遵循如下指示:, 甚至尝试使用flask上传(我无法正确导入,因为它一直说我无法导入扩展)。所以我将继续使用Flask上传照片的方法

不管怎么说,我觉得我的瓶子很标准:

from flask import make_response, Flask, request, jsonify, redirect, url_for
from flask.ext.sqlalchemy import SQLAlchemy
from flask_restful import reqparse, abort, Api, Resource
from flask.ext.httpauth import HTTPBasicAuth
from werkzeug import secure_filename
import os


app = Flask(__name__)
db = SQLAlchemy(app)
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://thanks:foryourhelp@localhost'
UPLOAD_FOLDER = '~/Documents/app/static'
ALLOWED_EXTENSIONS = set(['pdf', 'png', 'jpg', 'jpeg', 'gif'])
app.config['UPLOADS_FOLDER'] = UPLOAD_FOLDER



api = Api(app)
auth = HTTPBasicAuth()
class uploadPhoto(Resource):
  decorators = [auth.login_required]

  def __init__(self):
    self.reqparse = reqparse.RequestParser()
    self.reqparse.add_argument('image', type = str, default="")
    self.reqparse.add_argument('lat', type = float,  default="")
    self.reqparse.add_argument('lon', type = float,  default="")
    super(uploadPhoto, self).__init__()

  def post(self):
    file = request.files['file']
    if file and allowed_file(file.filename):
      filename = secure_filename(file.filename)
      file.save(os.path.join(app.config['UPLOAD_FOLDER'], filename))
      return redirect(url_for('uploaded_file', filename=filename))



api.add_resource(uploadPhoto, '/uploads/')
所以我想通过上传一张照片来测试它,并使用python的请求库上传一个文件,引发错误的代码行是:

    file.save(os.path.join(app.config['UPLOAD_FOLDER'], filename))
KeyError: 'UPLOAD_FOLDER' 

是因为我用的是满瓶的吗?我有一种使用资源设置api的不同方法。不管怎么说,我被卡住了,我想让它工作起来,谢谢

您拥有
app.config['UPLOADS\u FOLDER']=UPLOAD\u FOLDER
,然后在
post
功能中使用
app.config['UPLOAD\u FOLDER']
。您应该使用
app.config['UPLOADS\u FOLDER']