在IIS 7.5上托管Flask应用程序

时间:2014-06-09 22:03:05

标签: python iis flask iis-7.5

我正在尝试将一个Flask应用程序托管到IIS服务器上,我在最后一节遇到了绊脚石。以下是我到目前为止采取的步骤:

enter image description here

  • 为我新创建的应用程序池启用“启用32位应用程序”。

enter image description here

  • 使用PyISAPIe .dll
  • 创建通配符脚本映射

enter image description here

  • 创建以下文件并将其命名为“test.py”

from Http.WSGI import RunWSGI
from Http import Env

from datetime import datetime

from flask import Flask
app = Flask(__name__)
app.debug = True

@app.route('/', defaults={'path': ''})
@app.route('/')
def catch_all(path):
    s = "Path: %s\nTime: %s" % (path, datetime.now())
    return s

def Request():
    RunWSGI(app)
  • 使用Chrome转到返回的localhost / test.py:

enter image description here

问题是这样的:我的应用程序只在你去/test.py时运行,但是我想运行而不管URL。在IIS中我需要做什么,以便所有请求(无论URL如何)都将使用我的烧瓶应用程序?

更新:我已经开始工作了。这是我做的:

  • 使用以下内容替换Http.Isapi.py中的请求函数:

app_root = "my path"
sys.path.append(app_root)

from test import Request
  • 使用Chrome转到返回的localhost / test.py:

enter image description here

我现在遇到了一个新问题。当我从我的测试应用程序转到实际的应用程序时,我会收到以下回溯:

File "C:\Python26\Lib\site-packages\sqlalchemy\connectors\pyodbc.py", line 50, in dbapi
    return __import__('pyodbc')
ImportError: DLL load failed: The specified module could not be found.

问题不在于我没有安装pyodbc。如果它通过Flask.run()方法启动,我的应用程序可以正常工作。

0 个答案:

没有答案