如何在Windows Azure上部署Flask+ Python应用程序?

7 投票
2 回答
7069 浏览
提问于 2025-04-17 18:33

我最近用Flask和Python开发了一个应用程序,数据库用的是PostgreSQL。

我该怎么把我的应用上传到Windows Azure上呢?Windows Azure支持Flask吗?在Windows Azure的虚拟机上安装Flask应用值得吗?

很多教程都教你用Visual Studio和IPython搭配Django,但我不想这样做。

有没有什么指南或者教程可以让我入门呢?

2 个回答

4

假设你想创建一个云服务,最简单的开始方式就是使用Windows Azure PowerShell和新的模板功能。这让你可以为自己的角色创建自定义的框架。你只需要把安装Python和Flask运行环境所需的设置放在模板文件夹里,然后用Publish-AzureServiceProject命令把它发布到Azure上。

Azure已经内置了对Django网络角色的支持,所以你可以从这个基础上开始,然后做一些修改来支持Flask。

另一种选择是使用Linux虚拟机,你可以通过SSH自己设置。使用PowerShell或者跨平台的命令行工具会对你很有帮助,具体可以参考这个链接:http://www.windowsazure.com/en-us/develop/nodejs/tutorials/linux-virtual-machine/,里面有关于虚拟机的详细介绍。

5

截至2013年7月,Azure上有一个Flask的模板。

在这里输入图片描述

你可以先从这个模板开始。把它复制到你的电脑上。根目录下有一些IIS的设置,还有一个在FlaskApplication文件夹里的hello world Flask应用。你可以在电脑上用python __init__.py来测试这个Flask应用。我不太清楚怎么在本地测试IIS网站。

我也不太明白依赖关系是怎么工作的。模板里有一个Pip的requirements.txt文件,还有Flask和其他几个库的源代码。

我把我在Heroku上的一个应用复制到了Azure上。最后让它运行起来了。最大的困难是找到并查看日志(你需要在IIS管理器里开启所有的日志记录,然后访问一个FTP网站,日志会藏在一些奇怪名字的xml文件里),这让两个小问题的解决时间比预期的要长。

  1. 工作目录和Heroku不一样(在IIS网站的根目录,而不是Flask网站的根目录)
  2. 这个模板里的web.config有点问题,会悄悄地删除get请求中的查询字符串

这就是问题所在

 <action type="Rewrite" url="handler.fcgi/{R:1}" appendQueryString="false" />

撰写回答