如何在Ubuntu和APACHE服务器上用Flask读写文件 [英] How to read and write files with Flask with Ubuntu and apache server

查看:0
本文介绍了如何在Ubuntu和APACHE服务器上用Flask读写文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试部署一个使用Flask来写入和读取PNG图像的应用程序。我可以在本地运行我的脚本,没有错误,除非我在我的服务器上运行它。

我在DigitalOcean上使用此guide进行部署。它使用的是阿帕奇、WSGI和Virtualenv。

这是我的代码示例:

from flask import Flask
from flask import send_file
from PIL import Image

app = Flask(__name__)

@app.route("/")
def hello():
    img = Image.new('RGB', (200, 100), (255, 255, 255))
    img.save('output.png')
    return send_file('output.png', mimetype='image/png')

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

我发现导致问题的原因是img.save('output.png')我还发现,如果我尝试加载类似font = ImageFont.truetype("Archive.otf", 60)的字体,它也不起作用。我的.png和.otf文件与__init__.py位于同一个文件夹中

我想我搞砸了APACHE的配置或目录路径。如果我在烧瓶环境之外运行img.save,它就可以工作,所以它不是库或依赖项的问题。

推荐答案

您需要使用绝对路径,如/var/www/somedir/somefile。这是因为Apache下的Flask没有为Python提供可用的工作目录。我建议将路径设置为可配置的。

这篇关于如何在Ubuntu和APACHE服务器上用Flask读写文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆