首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >烧瓶-上传保持相同的错误,不知道为什么。

烧瓶-上传保持相同的错误,不知道为什么。
EN

Stack Overflow用户
提问于 2022-03-21 13:37:23
回答 1查看 35关注 0票数 0

我是一个工程专业的学生,我应该用python-烧瓶为一个项目创建一个小应用程序,但现在我被困在了上传系统的构建上:我刚刚复制了教授提供的代码,但它不起作用,上面写着"Errno30,只读文件系统/static“。我找不到解决这个问题的方法,所以需要帮助。

在这里粘贴视图函数:

代码语言:javascript
运行
复制
@app.route("/upload", methods=["POST", "GET"])
def upload_page():
    folder_name = str(session.get('park'))
    park=Parks.query.filter_by(id_park=folder_name).first()
    if not os.path.exists('/static/Uploads/' + str(folder_name)):
         os.makedirs('/static/Uploads/' + str(folder_name))
    file_url = os.listdir('/static/Uploads/' + str(folder_name))
    file_url = [str(folder_name) + "/" + file for file in file_url]
    formupload = UploadForm()
    print folder_name
    if formupload.validate_on_submit():
          filename = photos.save(formupload.file.data,
                           name=folder_name + '.jpg', folder=folder_name)
          file_url.append(filename)
          park.image = file_url
          db.session.commit()
          return redirect(url_for("home_page"))
return render_template("upload.html", formupload=formupload, filelist=file_url)

我不确定这里写的是什么,但我不得不说,“上传”是我刚刚为此创建的一个文件夹,它位于“静态”文件夹中。

我甚至粘贴错误页面:

代码语言:javascript
运行
复制
OSError
OSError: [Errno 30] Read-only file system: '/static'

Traceback (most recent call last)
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-         packages/flask/app.py", line 2464, in __call__
return self.wsgi_app(environ, start_response)
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-  packages/flask/app.py", line 2450, in wsgi_app
response = self.handle_exception(e)
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site- packages/flask/app.py", line 1867, in handle_exception
reraise(exc_type, exc_value, tb)
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-  packages/flask/app.py", line 2447, in wsgi_app
response = self.full_dispatch_request()
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-  packages/flask/app.py", line 1952, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site- packages/flask/app.py", line 1821, in handle_user_exception
reraise(exc_type, exc_value, tb)
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-  packages/flask/app.py", line 1950, in full_dispatch_request
rv = self.dispatch_request()
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-    packages/flask/app.py", line 1936, in dispatch_request
return self.view_functions[rule.endpoint](**req.view_args)
File "/Users/riccardo/PycharmProjects/flaskProject/app.py", line 130, in   upload_page
os.makedirs('/static/Uploads/' + str(folder_name))
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/os.py", line  150, in makedirs
makedirs(head, mode)
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/os.py", line 150, in makedirs
makedirs(head, mode)
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/os.py", line 157, in makedirs
mkdir(name, mode)
OSError: [Errno 30] Read-only file system: '/static'
EN

回答 1

Stack Overflow用户

发布于 2022-03-21 13:59:35

错误信息是相当自我解释的。

您的代码试图写入不允许写入的/static/Uploads。可能有一个很好的理由,因为/static/Uploads是一个绝对的URL,并且在文件系统中非常高。

您可能希望写入应用程序的目录或应用程序用户目录中的另一个文件夹。

您可以删除路径的前导斜杠,使其成为相对URL。

代码语言:javascript
运行
复制
@app.route("/upload", methods=["POST", "GET"])
def upload_page():
    folder_name = str(session.get('park'))
    park=Parks.query.filter_by(id_park=folder_name).first()
    if not os.path.exists('static/Uploads/' + str(folder_name)):
         os.makedirs('static/Uploads/' + str(folder_name))
    file_url = os.listdir('/static/Uploads/' + str(folder_name))

另外,请注意Flask-Uploads已经过时了--您应该使用https://github.com/jugmac00/flask-reuploaded

此外,您还使用Python2.7,不再维护它。您应该使用Python 3.10。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71558542

复制
相关文章

相似问题

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