Python Flask Hosting no servidor IIS do Windows 10
Desejo hospedar minha API Python Rest no servidor Windows 10 IIS.
Primeiro tentei hospedar um aplicativo de amostra, mas não consegui.
my_app.py
from flask import Flask
app = Flask(__name__)
@app.route('/')
def index():
return 'Hello IIS from Flask framework.'
@app.route('/Hello')
def hello_world():
return 'Hello World!'
if __name__ == '__main__':
app.run()
web.config
<configuration>
<system.webServer>
<handlers>
<add name="Python FastCGI"
path="*"
verb="*"
modules="FastCgiModule"
scriptProcessor="C:\Program Files\Python39\python.exe|C:\Program Files\Python39\lib\site-packages\wfastcgi.py"
resourceType="Unspecified"
requireAccess="Script" />
</handlers>
</system.webServer>
<appSettings>
<add key="WSGI_HANDLER" value="my_app.app" /> <!-- {name_of_file}.{name_of_flask_app}-->
<add key="PYTHONPATH" value="C:\inetpub\wwwroot\test" />
<add key="WSGI_LOG" value="C:\inetpub\wwwroot\test\app.log" />
</appSettings>
</configuration>
Eu tentei os tutoriais abaixo, mas não está funcionando para mim.
https://medium.com/@rajesh.r6r/deploying-a-python-flask-rest-api-on-iis-d8d9ebf886e9
https://www.youtube.com/watch?v=ma1UvzqF82Q&ab_channel=ShobhitWalia
Erro HTTP 500.0 - Erro interno do servidor: consulte a tela de erro
Preciso de ajuda .... Obrigado
Respostas
Se você deseja que o aplicativo python host IIS, instale o python e, em seguida, adicione o mapeamento de módulo no IIS. Aqui estão as etapas:
Primeiro instale o python em seu computador.
Habilitar CGI:
Após a instalação bem-sucedida, você verá "Restrições ISAPI e CGI" e mapeamentos de manipulador:
- Digite "ISAPI and CGI Restrictions", adicione uma nova ISAPI ou CGI Restrictions:
- Digite "Handler Mappings" e, em seguida, adicione o Mapeamento de Módulo (% S% S precisa ser adicionado ou um erro será relatado):
Finalmente, podemos acessar com sucesso o aplicativo python:
ATUALIZAR:
Você pode ver o python em seus mapeamentos de manipulador?
Este é meu web.config:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
</configuration>
Não há nada no web.config. Todas as minhas configurações são para todo o IIS:
Clique em "Navegação no diretório":
Habilitá-lo: