Ошибка URL-адреса IIS в Windows 10 - Python Flask Rest API

Nov 20 2020

Это мой пример приложения API для отдыха на Python. Я разместил это приложение в 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: // локальный: 8080

Hello World 0.0!

http: // локальный: 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: // локальный: 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: // локальный: 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.

Работает только первый маршрут, а оставшийся маршрут не работает.

Ответы

2 DingPeng Nov 20 2020 at 09:35

Вам необходимо изменить resourceType:

    <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>

Вам необходимо изменить значение resourceType на Unspecified.