【发布时间】:2019-05-26 23:55:57
【问题描述】:
只是为了好玩,我想了解如何使用Python 和Flask 创建一个网站。该网站必须在我自己的计算机上运行,我将是唯一的客户。到目前为止,我已经完成了大部分我想做的事情,但现在我遇到了一个我无法解决的技术问题。
在客户端,我想显示服务器返回的图像。在my __init__.py 中,我放置了app = Flask(__name__, static_url_path='/static') 和我的html 文档<img src="/static/images/2012035.jpg" height="150px">。这就像一个魅力。
但实际上,我的图像位于应用程序目录之外的目录d:\genealogie\documenten 中,我不想将超过2000 个文件复制到目录static/images 中。
我试过了:
documenten = "d:\genealogie\documenten"
os.mkdir(documenten)
给出WinError 183,因为该目录已经存在。
我也试过了:
documenten = "d:\genealogie\documenten"
app = Flask(__name__, static_url_path='documenten')
给出ValueError:网址必须以斜杠开头。
我在这里看到了很多类似的问题,但不幸的是,我无法看到如何将答案用于我的具体问题。我能否以这样一种方式配置网站,使我作为用户可以要求说<img src="documenten/2012035.jpg" height="150px">,可能带有一些或其他localhost 前缀?非常感谢任何帮助。
编辑
我想要做的是让服务器访问服务器目录之外的目录。也许我可以通过在WAMP 中展示这可以多么容易地做到这一点来说明这一点。我们只需要在文件httpd.conf 中添加几行。例如:
Include "C:/wamp64/alias/*"
Alias /adressen "d:/adressen"
<Directory "d:/adressen">
Options Indexes FollowSymLinks Multiviews
AllowOverride all
Require all granted
</Directory>
Alias /genealogie "d:/genealogie"
<Directory "d:/genealogie">
Options Indexes FollowSymLinks Multiviews
AllowOverride all
Require all granted
</Directory>
服务器及其所有文件位于c:/wamp64 及其子目录中。但是,当我们在html 文档中包含<img src="http://localhost/genealogie/documenten/doc1064.jpg"> 和<img src="http://localhost/adressen/doc5127.jpg"> 时,这两个图像都可以很好地显示,尽管它们在物理上位于WAMP 之外,即使在不同的驱动器上也是如此。所以我的问题是:我们也可以使用FLASK 来做到这一点吗?
【问题讨论】:
-
打开目录的想法很好,但 mkdir 会创建一个文件夹。只需使用 open 或其他东西。
-
为什么不将
documenten设为全局变量并按照您在烧瓶模板中的建议使用它。