如何访问我的Python应用程序运行的本地主机路径下的文件

问题描述 投票:0回答:1

我在本地计算机 (MacOS Ventura) 上的 localhost:5000 地址运行我的 Python webapi 应用程序

我创建了一个名为“receivedfiles”的目录,myapp.py 位于其中。我可以通过 localshot:5000 (或 192.168.1.2 而不是 localhost)访问我的应用程序,并通过我的 webapi 应用程序将文件上传到 receivefiles 目录。

这是我的 webapi 应用程序中用于文件上传的 python 代码

@app.route('/api/uploadfile', methods=['GET','POST'])
def uploadafile():
if 'myfile' not in request.files:
    return 'file could not be uploaded.', 400

myfile = request.files['myfile']
if myfile.filename == '':
    return 'please specify the filename', 400

# save the file to the receivedfiles folder
myfile.save('receivedfiles/' + myfile.filename)

return 'successfully uploaded', 200

此代码可以正常工作。

这是相关树:

.../myapp.py > my python webapi runs
.../receivedfiles/ > a directory for files
.../receivedfiles/sampleimage1.png > a file under that directory
192.168.1.2:5000/receivedfiles/ > relative path under localhost (192.168.1.2)
Users/myusername/myprojects/mypyhtonprojects/webapiproject1/receivedfiles/ is the absoulte (physical) path. I can access to the file via file:///Users/myusername/myprojects/mypyhtonprojects/webapiproject1/receivedfiles/sampleimage1.png on browser.

但是当我尝试从浏览器和/或例如通过 192.168.1.2:5000/receivedfiles/sampleimage1.png (我也尝试过没有端口号)直接访问文件时我的扑动应用程序,它返回“未找到”消息。

如何通过 localhost(或 /receivedfiles 路径以及该目录下的文件访问文件?

PS:我通过物理路径到达该文件夹并共享给任何访问。

感谢您的帮助。

python localhost relative-path webapi
1个回答
0
投票

Web 服务器无法访问项目中的所有文件。您应该将 Flask 集成到该项目中,将所需的文件或文件夹指定为静态,以便 Web 服务器可以访问它。应该就这么简单

`

 from flask import Flask, send_from_directory

 app = Flask(__name__)

 # (your existing code) 

 @app.route('/uploads/<filename>')  #New route for serving uploads


 def uploaded_file(filename):

      return send_from_directory('receivedfiles', filename)

'

send_from_directory 是一个 Flask 函数,用于从指定目录提供文件。 新路由 /uploads/ 允许您访问以下文件: 192.168.1.2:5000/上传/sampleimage1.png

© www.soinside.com 2019 - 2024. All rights reserved.