首页 > 解决方案 > 需要在项目根目录之外有烧瓶静态文件夹

问题描述

我需要将所有静态文件存储在项目文件夹之外。尽管我像下面这样更新了烧瓶配置,但仍然没有将图像保存在该文件夹中...

app = Flask(__name__, static_folder='../Storage/static', static_url_path='/storage')

但是当我尝试使用以下代码保存文件时,它总是将图像存储在 project_folder->static 中

def save_image(image: FileStorage, folder: str = None, name: str = None) -> str:
    return IMAGE_SET.save(image, folder, name)

需求示例:

当前的

project_folder/
               static/
                      images/

需要存储喜欢

Storage(parallel folder)/
               static/
                     images/   

 

请帮助,我尝试使用以下链接但没有帮助...

Flask 无法识别静态文件夹

我如何链接到不在烧瓶中的静态文件夹中的图像

从 Flask 中的配置更改静态文件夹

将我的 <img> 源设置为烧瓶静态文件夹之外的文件路径

标签: pythonflaskflask-restful

解决方案


下面是我的测试代码,文件夹'../Storage/static/images'应该在运行代码之前创建或使用os.makedirs()先创建:

import sys,os
from flask import  Flask
from werkzeug.datastructures import FileStorage
file = None
fp=open('110326-666286.jpg', 'rb')
file = FileStorage(fp)

app=Flask(__name__)
app.debug=True

def save_image(image: FileStorage, folder: str = None, name: str = None) -> str:
    if not os.path.exists(folder):
        os.makedirs(folder)
    return image.save(folder+'/'+name)

@app.route('/hello/<name>/<surname>')
def hello(name,surname):
  save_image(file,'../Storage/static/images','110326-666286_.jpg')
  if os.path.exists('../Storage/static/images'+'/'+'110326-666286_.jpg'):
    res='image saved'
  else:
    res='image not saved'
  return '<h1>hello, %s %s</h1><p>%s</p>'%(name,surname,res)



if __name__=='__main__':
  app.run(host='127.0.0.1',port=8080)

下面是结果

在此处输入图像描述


推荐阅读