Chcę uruchomić Python CGI na współdzielonym środowisku hostingowym. Śledziłem przykład kolby i wpadł malutkiej aplikacji, jak poniżej:Routing ścieżki w Flask
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
return "Hello World!"
@app.route("/pi")
def pi():
return "3.1416"
if __name__ == "__main__":
app.run()
My .htaccess
zawiera:
Options +ExecCGI
AddHandler cgi-script .cgi .py .rb
DirectoryIndex index.cgi index.htm
i mój index.cgi
jest
#!/usr/bin/env python
from wsgiref.handlers import CGIHandler
from firstflask import app
CGIHandler().run(app)
powodzeniem mapuje ścieżkę /
do index()
, ale nie zamapuje ścieżki /pi
na pi()
, zamiast tego przekręcając błąd 404. Chyba brakuje mi czegoś oczywistego. Dzięki za pomoc.
Czy to jest z Apache? Myślę, że dodanie tagu Apache prawdopodobnie dostarczy ci więcej odpowiedzi, ponieważ wydaje się, że jest to raczej problem z konfiguracją serwera WWW. – six8
Czy twój host obsługuje tylko CGI, czy obsługuje mod_python lub mod_wsgi? To są znacznie lepsze opcje. – six8
Cixate, masz rację, to jest z Apache. Jestem nowy w pythonowaniu frameworków internetowych. Ustawienie cgi wydaje się szybsze niż konfiguracja mod-wsgi. Właśnie dlatego wybieram cgi. Inną rzeczą, podejrzewałem, że może potrzebować przepisania adresu URL. Ale ponieważ nie widziałem żadnego przepisu na adres URL wymienionego w dokumencie, więc zakładam, że nie ma takiej potrzeby. Dzięki – sdc