Hallo Forum!
Gibt es eine Möglichkeit, die Initialisierung einer WSGI-Anwendung zwischen zwei aufrufen zu behalten? Bzw, wahrscheinlicher (da WSGI das nicht herzugeben scheint) gibt es da vielleicht einen komplett anderen Ansatz, neben WSGI?
wsgi: initialisierung der applikation "merken"
WSGI sieht die beiden Umgebungsvariablen wsgi.multithread und wsgi.multiprocess vor (s. auch [wiki]Das WSGI Protokoll).[/wiki]Es ist also möglich, Anwendungen nur einmal zu starten und dann die Requests davon bearbeiten zu lassen. Das funktioniert allerdings je nach verwendetem Prinzip nicht immer, etwa mit CGI, worüber für jeden Request die ganze Anwendung neu gestartet wird.
COOL! ich glaube, genau das brauchte ich.WSGI sieht die beiden Umgebungsvariablen wsgi.multithread und wsgi.multiprocess
Deshalb meine Frage nach einem anderen ansatz, da ich was ähnliches gedacht hatte (CGI kann das nicht, WSGI kann CGI, also kann WSGI das nicht, verkürzt gesagt).Das funktioniert allerdings je nach verwendetem Prinzip nicht immer, etwa mit CGI, worüber für jeden Request die ganze Anwendung neu gestartet wird.
Danke!
WSGI kann das schon, aber eben nicht mit CGI. Mit einem Standalone-Server, vermutlich mod_python und anderen Servern sollte das aber möglich und auch so gedacht sein.
Nachtrag: wsgi.run_once nicht zu vergessen.
Nachtrag: wsgi.run_once nicht zu vergessen.
Nein, nicht direkt. Ich will eine ZODB nutzen, und möchte sie nicht bei jedem Seitenaufruf neu initialisieren.@keppla: Suchst du vielleicht ein Session-Managment? Also die Möglichkeiten Werte an User zu koppeln und das von einem Request zum nächsten?
- birkenfeld
- Python-Forum Veteran
- Beiträge: 1603
- Registriert: Montag 20. März 2006, 15:29
- Wohnort: Die aufstrebende Universitätsstadt bei München
Ja, das ist kein Problem, falls du mod_python, FastCGI oder scgi verwendest.
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Oder einen standalone WSGI-Server wie den von Paste oder von CherryPy verwendest.birkenfeld hat geschrieben:Ja, das ist kein Problem, falls du mod_python, FastCGI oder scgi verwendest.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Sobald ich rausbekommen habe, wie ich das tue, wollte ich fastcgi oder mod_python mit einem apache nutzen (dedicated server, den ich mir mit anderen Teile, welche den Apache brauchen, deshalb würde ich mich da gerne einreihen).das ist kein Problem, falls du mod_python, FastCGI oder scgi verwendest.
Danke für die Antworten.
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Django and FastCGI zeigt es grob auf. Du konfigurierst in deinem FastCGI-fähigem Webserver seine .fcgi-Dateie, die gestartet wird. DIese ist ein FastCGI-Server, der über flup eine WSGI-App (in diesem Fall Django) wrappt.keppla hat geschrieben:Sobald ich rausbekommen habe, wie ich das tue, wollte ich fastcgi oder mod_python mit einem apache nutzen (dedicated server, den ich mir mit anderen Teile, welche den Apache brauchen, deshalb würde ich mich da gerne einreihen).
Wie du es nun einbindest hängt nun ab, ob du ein Framework verwendest, oder pures WSGI.. aber flup brauchst du auf jeden Fall, da es die nötigen FastCGI-Server mitbringt.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Danke für die Erklärung, ich hätte mal früher reinschauen sollen.
Ich hatte das Konzept von Wrappern noch nicht so ganz verstanden.
In der Zwischenzeit bin ich auf mod_python/paste umgestiegen, weil mod_python schon läuft (ich hasse administration;) ), und paste ziemlich nach dem Minimum aussieht, was ich gerne hätte (sessions, request- und responseobjekte, urldispatcher will ich mir selber machen).
Allerdings glaube ich, brauch ich da kein flup, ein wrapper scheint in paste mit paste.modpython inklusive zu sein, ein "hello world" hab ich schon hinbekommen)
Ich hatte das Konzept von Wrappern noch nicht so ganz verstanden.
In der Zwischenzeit bin ich auf mod_python/paste umgestiegen, weil mod_python schon läuft (ich hasse administration;) ), und paste ziemlich nach dem Minimum aussieht, was ich gerne hätte (sessions, request- und responseobjekte, urldispatcher will ich mir selber machen).
Allerdings glaube ich, brauch ich da kein flup, ein wrapper scheint in paste mit paste.modpython inklusive zu sein, ein "hello world" hab ich schon hinbekommen)