我有一个Web应用程序,除其他外,将查询数据库并使用数据创建Excel电子表格.在将文件发送到客户端计算机之前,我需要将电子表格保存到服务器的磁盘.我正在使用Flask框架和openpyxl来生成电子表格.在Flask的开发服务器上运行时,一切正常,但真正的服务器是带有WSGI的Apache2.当我在那里运行时,在尝试保存电子表格时会引发"权限被拒绝"错误.我不知道在Apache/WSGI中运行时Python的工作目录是什么.
有没有办法,可能在WSGI配置文件中,更改工作目录,或以某种方式控制它将保存到哪里?如果可能的话,我想使用相对路径进行保存(它使代码更具可移植性),这就是更改工作目录是最佳解决方案的原因.
Gra*_*ton 20
你不应该改变工作目录.
使用:
import os
here = os.path.dirname(__file__)
Run Code Online (Sandbox Code Playgroud)
here然后,该变量将包含该代码文件所在的目录.然后,您可以构建相对于此的事物的绝对路径.
database = os.path.join(here, 'database.db')
Run Code Online (Sandbox Code Playgroud)
请注意,您的代码在Apache中运行的用户仍然需要对该目录的读/写访问权限.
与往常一样,请务必阅读文档.文件的相关部分是:
| 归档时间: |
|
| 查看次数: |
7682 次 |
| 最近记录: |