Hosting Python Flask su server IIS di Windows 10
Voglio ospitare la mia API Python Rest sul server IIS di Windows 10.
Per prima cosa ho provato a ospitare un'applicazione di esempio ma non ci riesco.
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>
Ho provato i seguenti tutorial ma non funziona per me.
https://medium.com/@rajesh.r6r/deploying-a-python-flask-rest-api-on-iis-d8d9ebf886e9
https://www.youtube.com/watch?v=ma1UvzqF82Q&ab_channel=ShobhitWalia
Errore HTTP 500.0 - Errore interno del server: vedere la schermata dell'errore
Ho bisogno di aiuto ... Grazie
Risposte
Se si desidera un'applicazione Python host IIS, è necessario installare Python e quindi è necessario aggiungere la mappatura del modulo in IIS. Ecco i passaggi:
Per prima cosa installa python sul tuo computer.
Abilita CGI:
Al termine dell'installazione, vedrai "Restrizioni ISAPI e CGI" e Mappature gestori:
- Immettere "Restrizioni ISAPI e CGI", aggiungere un nuovo Restrizioni ISAPI o CGI:
- Inserisci "Handler Mappings", quindi aggiungi Module Mapping (% S% S deve essere aggiunto o verrà segnalato un errore):
Finalmente possiamo accedere con successo all'applicazione python:
AGGIORNARE:
Riesci a vedere python nelle tue mappature dei gestori?
Questo è il mio web.config:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
</configuration>
Non c'è niente in web.config. Tutte le mie impostazioni sono per l'intero IIS:
Fare clic su "Esplorazione directory":
Abilitalo: