Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python flask中的应用程序和请求实例_Python_Flask - Fatal编程技术网

Python flask中的应用程序和请求实例

Python flask中的应用程序和请求实例,python,flask,Python,Flask,我正在尝试这些代码,如果我从函数save_files和save_files中删除默认参数(request=request,app=app),那么代码就不能正常工作(python解释器不会进入函数save_file)。为什么? def save_文件(请求=请求,应用=应用): “将请求中的所有文件保存到应用的上载文件夹。” 对于u,请在request.files.iteritems()中存储文件: #解决方法:较大的上载会导致名为“”的虚拟文件。 #有关更多信息,请参阅Flask邮件列表。 如果

我正在尝试这些代码,如果我从函数
save_files
save_files
中删除默认参数(
request=request,app=app
),那么代码就不能正常工作(python解释器不会进入函数save_file)。为什么?

def save_文件(请求=请求,应用=应用):
“将请求中的所有文件保存到应用的上载文件夹。”
对于u,请在request.files.iteritems()中存储文件:
#解决方法:较大的上载会导致名为“”的虚拟文件。
#有关更多信息,请参阅Flask邮件列表。
如果filestorage.filename不在(无,'fdopen',''):
保存文件(文件存储,app=app)
def save_文件(文件存储,app=app):
“将Werkzeug文件存储对象保存到上载文件夹。”
filename=secure\u文件名(filestorage.filename)
filepath=os.path.join(app.config['PICTURE\u FOLDER'],文件名)
filestorage.save(文件路径)
@app.route('/_add_picture',methods=['GET','POST'])
def add_picture():
如果request.method==“POST”:
保存_文件()
返回“已上载”
如果request.method==“GET”:
返回渲染模板('add\u picture.html')

你的代码对我来说很好。是的,但是如果我在保存文件中删除request=request和app=app,在保存文件中删除app=app,它就不起作用了,我不知道你删除它们时会出现什么错误?这不是大问题,因为我只是想了解这个机制。不正常的是,当我使用pydev进行调试时,它会执行save_files,但在save_file行中,pydev不会跳入函数并退出…我删除了它,它工作正常。
    def save_files(request=request, app=app):
        "Save all files in a request to the app's upload folder."
        for _, filestorage in request.files.iteritems():
            # Workaround: larger uploads cause a dummy file named '<fdopen>'.
            # See the Flask mailing list for more information.
            if filestorage.filename not in (None, 'fdopen', '<fdopen>'):
                save_file(filestorage, app=app)

    def save_file(filestorage, app=app):
        "Save a Werkzeug file storage object to the upload folder."
        filename = secure_filename(filestorage.filename)
        filepath = os.path.join(app.config['PICTURE_FOLDER'], filename)
        filestorage.save(filepath)

    @app.route('/_add_picture', methods=['GET', 'POST'])
    def add_picture():
        if request.method == 'POST':
            save_files()
            return 'Uploaded'
        if request.method == 'GET':
            return render_template('add_picture.html')