Colubrid WSGI Request Handler 0.8
-
- User
- Beiträge: 1790
- Registriert: Donnerstag 28. Oktober 2004, 16:33
- Wohnort: Graz, Steiermark - Österreich
- Kontaktdaten:
Hier:
Dann hast du eine Form aus 200 Checkboxen. Und für alle angeklickten bekommst du deren IDs mit request.GET.getlist('delete').
Code: Alles auswählen
def get_form(self):
return '\n'.join('<input type="checkbox" name="delete" value="%d">' % i for i on xrange(200))
TUFKAB – the user formerly known as blackbird
- jens
- Python-Forum Veteran
- Beiträge: 8502
- Registriert: Dienstag 10. August 2004, 09:40
- Wohnort: duisburg
- Kontaktdaten:
Nich zwei andere Fragen:
1.) Mit self.request.exposed.append() kann man ja Daten zum Traceback hinzufügen... Aber in welcher Form müßen die vorliegen? Dürfen es nur Dicts sein?
2.) Der Standalone-Test-Server funktioniert bei mir übers Netz erst dann, wenn bei http://wsgiarea.pocoo.org/trac/browser/ ... te.py#L342
Es nicht:
sondern:
steht. Ist das normal???
3.) Beim starten vom standalone-Test-Server kommt es immer zu einem Traceback, aber der Server läuft:
Also ich starte den Server unter Linux! Zwar stimmen die Pfade theoretisch, weil die als Samba Freigabe so verfügbar sind, aber irgendwie macht das keinen Sinn
1.) Mit self.request.exposed.append() kann man ja Daten zum Traceback hinzufügen... Aber in welcher Form müßen die vorliegen? Dürfen es nur Dicts sein?
2.) Der Standalone-Test-Server funktioniert bei mir übers Netz erst dann, wenn bei http://wsgiarea.pocoo.org/trac/browser/ ... te.py#L342
Es nicht:
Code: Alles auswählen
self.run_standalone(options.hostname or 'localhost',
Code: Alles auswählen
self.run_standalone("",
3.) Beim starten vom standalone-Test-Server kommt es immer zu einem Traceback, aber der Server läuft:
Was ich aber überhaupt nicht verstehe, wie das Windows-Pfade im Traceback rein kommen könnenTraceback (most recent call last):
File "PyLucid_CGI_app.py", line 106, in ?
CGIServer(app, exports).run()
File "/daten/www/testing_Server/PyLucid_WSGI/colubrid/execute.py", line 111, in run
result = self.application(environ, start_response)
File "PyLucid_CGI_app.py", line 57, in __init__
super(PyLucid, self).__init__(*args)
File "W:\testing_Server\WSGIarea\colubrid\application.py", line 64, in __init__
File "W:\testing_Server\WSGIarea\colubrid\request.py", line 35, in __init__
File "W:\testing_Server\WSGIarea\colubrid\request.py", line 53, in get_full_url
File "W:\testing_Server\WSGIarea\colubrid\utils.py", line 292, in get_full_url
KeyError: 'SERVER_NAME'
Also ich starte den Server unter Linux! Zwar stimmen die Pfade theoretisch, weil die als Samba Freigabe so verfügbar sind, aber irgendwie macht das keinen Sinn
-
- User
- Beiträge: 670
- Registriert: Sonntag 15. Januar 2006, 18:42
- Wohnort: Celle
- Kontaktdaten:
Doch. Die Pfade sind noch .pyc's die Du unter Windows kompiliert hast da drin. Lösch alle .pyc-s, und die Linux-Pfade tauchen auf.Was ich aber überhaupt nicht verstehe, wie das Windows-Pfade im Traceback rein kommen können :Shocked:
Also ich starte den Server unter Linux! Zwar stimmen die Pfade theoretisch, weil die als Samba Freigabe so verfügbar sind, aber irgendwie macht das keinen Sinn
--- Heiko.
- jens
- Python-Forum Veteran
- Beiträge: 8502
- Registriert: Dienstag 10. August 2004, 09:40
- Wohnort: duisburg
- Kontaktdaten:
Ich hab noch eine generelle Anmekrung zur Namenswahl. Warum heißt es überhaupt CGIServer in colubird?
Für mich ist ein Apache mit CGI ehr ein CGI-Server
Ich würde vorschlagen das ehr CGIbridge zu nennen. Denn es ist doch ehr eine Brücke zwischen dem ApacheCGIServer und der WSGI-Applikation. Oder vielleicht auch CGIAdapter...
EDIT:
Ich hab nochmal mit --hostname und --port gespielt... Leider funktioniert ein --hostname "" nicht.
Das liegt an options.hostname or 'localhost' Denn das Ergebniss ist 'localhost' wenn options.hostname = "" ist
Hier mal ein Vorschlag:
Für mich ist ein Apache mit CGI ehr ein CGI-Server
Ich würde vorschlagen das ehr CGIbridge zu nennen. Denn es ist doch ehr eine Brücke zwischen dem ApacheCGIServer und der WSGI-Applikation. Oder vielleicht auch CGIAdapter...
EDIT:
Ich hab nochmal mit --hostname und --port gespielt... Leider funktioniert ein --hostname "" nicht.
Das liegt an options.hostname or 'localhost' Denn das Ergebniss ist 'localhost' wenn options.hostname = "" ist
Hier mal ein Vorschlag:
Code: Alles auswählen
Index: W:/testing_Server/PyLucid_WSGI/colubrid/execute.py
===================================================================
...
class StandaloneServer(ThreadingMixIn, HTTPServer):
def __init__(self, application, exports, hostname, port, noreload, quiet):
+ print "Starting standalone Server at '%s' port:%s" % (hostname, port)
HTTPServer.__init__(self, (hostname, port), WSGIHandler)
...
class CommandlineApplication(object):
...
def handle_parameters(self):
...
if args[0] == 'runserver':
- self.run_standalone(options.hostname or 'localhost',
+ if options.hostname == None: options.hostname = "localhost"
+ self.run_standalone(options.hostname,
options.port or 8080, bool(options.no_reload),
bool(options.quiet))
-
- User
- Beiträge: 1790
- Registriert: Donnerstag 28. Oktober 2004, 16:33
- Wohnort: Graz, Steiermark - Österreich
- Kontaktdaten:
Ney. Eigentlich sollte es ja WSGIServer heißen, aber wenn zwei in einer Datei sind isses leicht komisch. Aber vielleicht bennen ichs wirklich um, bricht halt Kompatibilität.jens hat geschrieben:Ich hab noch eine generelle Anmekrung zur Namenswahl. Warum heißt es überhaupt CGIServer in colubird?
Für mich ist ein Apache mit CGI ehr ein CGI-Server
Jup. Ein eigener Server isses ja so nicht, aber da wrapper in der Regel WSGIServer heißen wollte ich da anknüpfen.Ich würde vorschlagen das ehr CGIbridge zu nennen. Denn es ist doch ehr eine Brücke zwischen dem ApacheCGIServer und der WSGI-Applikation. Oder vielleicht auch CGIAdapter...
Und was deinen Patch angeht, würde man die Serverstart message bei jedem Code Reload sehen. Weil da startet er den Prozess einfach neu.
TUFKAB – the user formerly known as blackbird
- jens
- Python-Forum Veteran
- Beiträge: 8502
- Registriert: Dienstag 10. August 2004, 09:40
- Wohnort: duisburg
- Kontaktdaten:
Dann finde ich die ursprüngliche Namenswahl nicht wirklich gelungen...blackbird hat geschrieben:Ein eigener Server isses ja so nicht, aber da wrapper in der Regel WSGIServer heißen wollte ich da anknüpfen.
OK, dann müßte das irgendwo anders hin, aber generell ist eine Ausgabe IMHO ein muß!blackbird hat geschrieben:Und was deinen Patch angeht, würde man die Serverstart message bei jedem Code Reload sehen. Weil da startet er den Prozess einfach neu.
Was ist mit der anderen Zeile???
-
- User
- Beiträge: 1790
- Registriert: Donnerstag 28. Oktober 2004, 16:33
- Wohnort: Graz, Steiermark - Österreich
- Kontaktdaten:
Find ich nicht. Ist ja ein Dienerjens hat geschrieben:Dann finde ich die ursprüngliche Namenswahl nicht wirklich gelungen...blackbird hat geschrieben:Ein eigener Server isses ja so nicht, aber da wrapper in der Regel WSGIServer heißen wollte ich da anknüpfen.
Den fix mit dem hostname ANY werde ich einbauen.OK, dann müßte das irgendwo anders hin, aber generell ist eine Ausgabe IMHO ein muß!blackbird hat geschrieben:Und was deinen Patch angeht, würde man die Serverstart message bei jedem Code Reload sehen. Weil da startet er den Prozess einfach neu.
Was ist mit der anderen Zeile???
TUFKAB – the user formerly known as blackbird
- jens
- Python-Forum Veteran
- Beiträge: 8502
- Registriert: Dienstag 10. August 2004, 09:40
- Wohnort: duisburg
- Kontaktdaten:
Dann nenn es meinetwegen CGIbutler, CGIservant oder irgendwie anders, aber nicht CGIServer...blackbird hat geschrieben:Find ich nicht. Ist ja ein Dienerjens hat geschrieben:Dann finde ich die ursprüngliche Namenswahl nicht wirklich gelungen...blackbird hat geschrieben:Ein eigener Server isses ja so nicht, aber da wrapper in der Regel WSGIServer heißen wollte ich da anknüpfen.
- jens
- Python-Forum Veteran
- Beiträge: 8502
- Registriert: Dienstag 10. August 2004, 09:40
- Wohnort: duisburg
- Kontaktdaten:
Noch eine Anmerkung zur Namenswahl... Zwar ist in der neuen Colubrid kein CGI-Server mehr drin, aber dennoch...
Wie im IRC "besprochen" redet PEP-0333 von nicht von CGI-Serber sondern von CGI-Gateway, das IMHO sehr gut passt...
Es sieht also so aus:
WebApp -> CGI-Handler -> CGI-Gateway -> Apache
Also lasst und bitte immer von CGI-Gateware sprechen, ja?
(Im übrigen hab ich mal die http://wiki.python.de/Colubrid/Hello_World überarbeitet und noch ein paar Anmerkungen hinzugefügt...)
Wie im IRC "besprochen" redet PEP-0333 von nicht von CGI-Serber sondern von CGI-Gateway, das IMHO sehr gut passt...
Es sieht also so aus:
WebApp -> CGI-Handler -> CGI-Gateway -> Apache
Also lasst und bitte immer von CGI-Gateware sprechen, ja?
(Im übrigen hab ich mal die http://wiki.python.de/Colubrid/Hello_World überarbeitet und noch ein paar Anmerkungen hinzugefügt...)