首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RuntimeError:无法访问外部请求的配置

RuntimeError:无法访问外部请求的配置
EN

Stack Overflow用户
提问于 2014-05-14 09:23:19
回答 1查看 5K关注 0票数 19

我发现了以下错误:

代码语言:javascript
复制
RuntimeError: cannot access configuration outside request

执行下列代码:

代码语言:javascript
复制
# -*- coding: utf-8 -*-

from flask import Flask, request, render_template, redirect, url_for
from flaskext.uploads import UploadSet, configure_uploads, patch_request_class

app = Flask(__name__)
csvfiles = UploadSet('csvfiles', 'csv', "/var/uploads")

@app.route("/")
def index():
    return "Hello World!"

@app.route('/upload', methods=['GET', 'POST'])
def upload():
    if request.method == 'POST' and 'csvfile' in request.files:
        filename = csvfiles.save(request.files['csvfile']) # the error occurs here!
        return redirect(url_for('index'))
    return render_template('upload.html')

if __name__ == "__main__":
    app.run(debug=True)

我不明白错误信息本身,也不知道如何解决这个问题。我阅读了正式的文档,似乎我必须做一些配置(存储上传的位置),但我不知道如何正确地完成它。

我正在使用烧瓶-上传扩展。

这是在python2.7虚拟环境中运行的,所安装的软件包如下:

代码语言:javascript
复制
Flask==0.10.1
Flask-Uploads==0.1.3
Jinja2==2.7.2
MarkupSafe==0.23
Werkzeug==0.9.4
argparse==1.2.1
itsdangerous==0.24
wsgiref==0.1.2
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-05-14 09:44:43

你没有配置了烧瓶上传扩展。使用函数将上传集附加到应用程序:

代码语言:javascript
复制
from flaskext.uploads import UploadSet, configure_uploads

app = Flask(__name__)
app.config['UPLOADED_CSVFILES_DEST'] = '/var/uploads'
csvfiles = UploadSet('csvfiles', ('csv',))
configure_uploads(app, (csvfiles,))

UploadSet()的第二个参数采用一系列扩展。不要将文件路径传递给UploadSet,而是使用烧瓶配置

设置UPLOADED_<name-of-your-set>_DEST,其中的名称是超感知的。这是UPLOADED_CSVFILES_DEST。您还可以设置一个UPLOADS_DEFAULT_DEST配置;它将用作一个基本目录,每个集合名称都有单独的子目录。

或者,第三个参数可以是可调用的:

代码语言:javascript
复制
configure_uploads(app, (csvfiles,), lambda app: '/var/uploads')
票数 26
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23650544

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档