Seite 1 von 1

[django] Wird der dev.Server genutzt???

Verfasst: Mittwoch 31. Oktober 2007, 14:12
von jens
Gibt es eigentlich eine Sichere Method festzustellen, ob die django-app gerade mit dem Development Server läuft oder mit einem echten?

Das einzige was mir einfällt: Nachsehen, was sich in os.environ tummelt...

Verfasst: Montag 19. November 2007, 23:45
von sma
Hi,

Du könntest vielleicht request.META['SERVER_SOFTWARE'] prüfen. Der Development-Server sagt dort u'WSGIServer/0.1 Python/2.5.1'. Ein anderer Server möglicherweise (kann ich jetzt nicht prüfen) etwas anderes. Ein anderes Indiz wäre, wenn dein System auf localhost:8000 läuft. Was genau willst du erreichen?

Stefan

Verfasst: Dienstag 20. November 2007, 16:26
von Leonidas
sma hat geschrieben:Ein anderes Indiz wäre, wenn dein System auf localhost:8000 läuft. Was genau willst du erreichen?
Mehr als ein Inziz ist das jedoch nicht, denn manchmal lässt man den WSGI-Server auch auf 0.0.0.0 lauschen oder hat im Produktiveinsatz den HTTPd auf Port 8000 und setzt einen Squid-Proxy davor.

Verfasst: Mittwoch 21. November 2007, 08:57
von jens
Die Idee war, die urls.py dynamisch anzupassen. Es geht um das Ausliefern von statischen Dateien mittels 'django.views.static.serve'...

Momentan muss man die url.py halt selbst anpassen, siehe:
http://pylucid.net:8080/pylucid/browser ... rls.py#L97

Verfasst: Donnerstag 22. November 2007, 16:16
von sma
Hm, ich ja ein Fan von automatischen Konfigurationen, wo man gerade nicht daran denken muss, Dateien manuell zu ändern. Ich muss außerdem zugeben, dass ich deinen Code recht unübersichtlich aufgrund deinen "comment spams" finde. Bin kein Fan von Trennlinien.

Im Fall von static-Dateien habe ich in meiner urls.py-Datei einfach diese ganz hinten stehen und erwarte, dass im Produktivbetrieb unser Lighttpd dafür sorgt, dass so eine URL niemals bei Django ankommt. Ich sah keine Notwendigkeit, dies zu einer bedingten Anweisung zu machen.

Die Sache mit den URL-Präfixes hatten wir auch, ich hatte mich für eine Lösung mit eigenen Funktionen entschieden, z.B. so

Code: Alles auswählen

prefixed_url('foo/$', bar)

Re: [django] Wird der dev.Server genutzt???

Verfasst: Freitag 1. Juli 2011, 22:10
von jens
jens hat geschrieben:Gibt es eigentlich eine Sichere Method festzustellen, ob die django-app gerade mit dem Development Server läuft oder mit einem echten?
Die Lösung ist eigentlich recht einfach:

Code: Alles auswählen

if sys.argv[1].startswith("runserver"):
:P

siehe: https://github.com/jedie/PyLucid/commit ... 4a0eb76a3e

(Mensch... Seit 2007 vergessen...)

Re: [django] Wird der dev.Server genutzt???

Verfasst: Samstag 6. August 2011, 02:07
von Dauerbaustelle
Wieso `startswith`?

Re: [django] Wird der dev.Server genutzt???

Verfasst: Samstag 6. August 2011, 07:30
von jens
Hm. Gute Frage ;)

Eigentlich sollte das auch funktionieren:

Code: Alles auswählen

if "runserver" in sys.argv:
Damit muß man auch nicht testen ob sys.argv >= 2 ist...


...oder?

Re: [django] Wird der dev.Server genutzt???

Verfasst: Samstag 6. August 2011, 12:59
von Dauerbaustelle
jop

Re: [django] Wird der dev.Server genutzt???

Verfasst: Freitag 12. August 2011, 16:15
von jens
Wozu überhaupt if? Geht noch einfacher, in die settings.py kommt das rein:

Code: Alles auswählen

RUN_WITH_DEV_SERVER = "runserver" in sys.argv
:P