Błąd adresu URL usług IIS w systemie Windows 10 - interfejs API Python Flask Rest

Nov 20 2020

To jest moja przykładowa aplikacja API REST w języku Python. Hostowałem tę aplikację w Windows 10 IIS.

hello.py

from flask import Flask
app=Flask(__name__)

@app.route('/',methods=['GET'])
def index():
    return "Hello World 0.0!"
    
@app.route('/1',methods=['GET'])
def index1():
    return "Hello 1.0!"

@app.route('/2',methods=['GET'])
def index2():
    return "Hello 2.0!"
    
if __name__=='__main__':
    app.run(debug=True)

web.config

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <system.webServer>
    <handlers>
      <add name="FlaskFastCGI" path="*" verb="*" modules="FastCgiModule" scriptProcessor="C:\Program Files\Python39\python.exe|&quot;C:\Program Files\Python39\lib\site-packages\wfastcgi.py&quot;" resourceType="Either" requireAccess="Script" />
    </handlers>
    <security> 
        <requestFiltering allowDoubleEscaping="true"></requestFiltering> 
    </security> 
  </system.webServer>

  <appSettings>
    <!-- Required settings -->
    <add key="WSGI_HANDLER" value="hello.app" />
    <add key="PYTHONPATH" value="~/" />

    <!-- Optional settings -->
    <add key="WSGI_LOG" value="C:\website\oboeqa_web.log" />
    <add key="WSGI_RESTART_FILE_REGEX" value=".*((\.py)|(\.config))$" />
  </appSettings>
</configuration>

http: // localhost: 8080

Hello World 0.0!

http: // localhost: 8080/1

HTTP Error 404.0 - Not Found
The resource you are looking for has been removed, had its name changed, or is temporarily unavailable.

http: // localhost: 8080/2

HTTP Error 404.0 - Not Found
The resource you are looking for has been removed, had its name changed, or is temporarily unavailable.

http: // localhost: 8080/3

HTTP Error 404.0 - Not Found
The resource you are looking for has been removed, had its name changed, or is temporarily unavailable.

Pierwsza trasa tylko działa, a pozostała trasa nie działa.

Odpowiedzi

2 DingPeng Nov 20 2020 at 09:35

Musisz zmodyfikować typ zasobu:

    <handlers>
      <add name="FlaskFastCGI" path="*" verb="*" modules="FastCgiModule" scriptProcessor="C:\Python27\python.exe|C:\Python27\lib\site-packages\wfastcgi.pyc" resourceType="Unspecified" requireAccess="Script" />
    </handlers>

Musisz zmienić wartość resourceType na Unspecified.