[django] wsgi.url_scheme <-> os.environ.get("HTTP

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Antworten
Benutzeravatar
jens
Moderator
Beiträge: 8482
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Dienstag 30. Oktober 2007, 14:36

Durch die Frage, wie man eine Absolute URL in django aufbaut, hab ich was anderes gefunden...

Also django stellt fest, ob "http" oder "https" genutzt wurde, über os.environ.get("HTTPS") ist ein "HTTPS = on" gesetzt, dann ist es "https", wenn nicht dann nicht...

Ich dagegen mach das so: request.META.get('wsgi.url_scheme', "http")

Was ist nun besser?

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Benutzeravatar
jens
Moderator
Beiträge: 8482
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Mittwoch 31. Oktober 2007, 08:54

OK, also der große Unterschied: os.environ["HTTPS"] wird vom Apache gesetzt. Angaben in request.META werden teilweise durch WSGI/django gesetzt.
Man merkt das wenn man sich die Einträge einmal mit dem Apache und einmal mit dem django entwicklungsserver anschaut.

IMHO sollte man also ehr auf request.META setzten und nur dann, wenn das reuqest Objekt nicht erreichbar ist, auf os.environ ausweichen...

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Antworten