Wie benutze ich den Kolben Routen mit Apache und mod_wsgi?

Ich habe meinen Apache-server-setup, und es ist der Umgang mit Kolben Antworten über mod_wsgi. Ich habe registriert das WSGI-script mit dem alias:

[httpd.conf]

WSGIScriptAlias /service "/mnt/www/wsgi-scripts/service.wsgi"

Habe ich die entsprechenden WSGI-Datei an die oben genannte Pfad:

[/mnt/www/wsgi-scripts/service.wsgi]

import sys
sys.path.insert(0, "/mnt/www/wsgi-scripts")

from service import application

Und ich haben einen einfachen test Flask Python-Skript, das bietet das service-Modul:

[/mnt/www/wsgi-scripts/service.py]

from flask import Flask

app = Flask(__name__)

@app.route('/')
def application(environ, start_response):
        status = '200 OK'
        output = "Hello World!"
        response_headers = [('Content-type', 'text/plain'),
                            ('Content-Length', str(len(output)))]
        start_response(status, response_headers)
        return [output]

@app.route('/upload')
def upload(environ, start_response):
        output = "Uploading"
        status = '200 OK'
        response_headers = [('Content-type', 'text/plain'),
                            ('Content-Length', str(len(output)))]
        start_response(status, response_headers)
        return [output]

if __name__ == '__main__':
        app.run()

Wenn ich gehen Sie zu meiner website URL [hostname]/- service funktioniert wie erwartet und ich erhalte die Meldung "Hallo Welt!" zurück. Das problem ist, dass ich nicht weiß, wie man andere Routen zu arbeiten, so wie 'hochladen' im obigen Beispiel. Dies funktioniert im standalone-Kolben aber unter mod_wsgi bin ich überfragt. Das einzige was ich mir vorstellen kann, ist die Registrierung eine eigene WSGI-Skript-alias in der httpd.conf für jeden Endpunkt, den ich will, aber das nimmt Flask ' s routing unterstützen. Gibt es eine Möglichkeit, diese Arbeit zu machen?

  • Haben Sie versucht, surfen zu /service/upload? Sie könnten angenehm überrascht sein.
  • Wenn ich hit /service/upload die Anfrage trotzdem gesendet wird, um die "application" - Funktion. In der Tat, ich kann entfernen Sie die route-Anweisung, bevor die Anwendung funktioniert und es funktioniert immer noch. Es ist wie die Anwendung ist immer von mod_wsgi als Einstiegspunkt in die Anwendung. Es fühlt sich an wie ich brauche, um zu tun, etwas in 'Anwendung', die startet Kolben routing-Logik.
Schreibe einen Kommentar