Wir rätseln gerade ein wenig, ob man in URLs Gross-/Kleinschreibung verwenden kann oder nicht.
Es geht im Grunde über die Namen bei PyLucid Plugins. Da diese in der URL vorkommen, sollte man also besser sagen das diese konsequent klein geschrieben werden müßen oder nicht.
Ich meine ich hatte einen Fall, das Firefox die URL eines Redirects kleingeschrieben hat, obwohl in der URL auch Gross-Buchstaben vorgekommen sind.
Weiß da jemand genauer bescheid?
Gross-/Kleinschreibung in URLs...
Das kommt auf den Teil der URL an. Beim Domain-Namen ist Gross-/Kleinschreibung egal. Alles was danach kommt ist "case sensitiv".
- jens
- Python-Forum Veteran
- Beiträge: 8502
- Registriert: Dienstag 10. August 2004, 09:40
- Wohnort: duisburg
- Kontaktdaten:
Es geht nur um den Teil danach...
Machen das die Browser auch alle richtig? Hat da jemand Erfahrung gesammelt?
Ansonsten hat sich nämlich ein Problem für mich erledigt, siehe auch: http://pylucid.org/phpBB2/viewtopic.php?t=136
Machen das die Browser auch alle richtig? Hat da jemand Erfahrung gesammelt?
Ansonsten hat sich nämlich ein Problem für mich erledigt, siehe auch: http://pylucid.org/phpBB2/viewtopic.php?t=136
- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
Hallo Jens!jens hat geschrieben:Es geht nur um den Teil danach...
Machen das die Browser auch alle richtig? Hat da jemand Erfahrung gesammelt?
Die Browser übernehmen exakt das, was in der HTML-Seite steht. Wenn es da groß/klein geschrieben steht, dann wird der URL auch so an den Server übergeben.
Der Apache unter Linux achtet exakt auf Groß-/Kleinschreibung. Der Apache unter Windows nicht.
Aber es gehört, meines Erachtens, zum guten Ton, dass man URLs klein schreibt, keine Sonderzeichen und keine Leerzeichen verwendet.
lg
Gerold
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
- jens
- Python-Forum Veteran
- Beiträge: 8502
- Registriert: Dienstag 10. August 2004, 09:40
- Wohnort: duisburg
- Kontaktdaten:
Also ich werde das nachher nochmal testen.
Ich meine ich hatte ein Problem mit einem http-Redirect in django. Ich hatte Firefox und den django-dev-server genutzt.
Das eigentliche "Problem":
Normalerweise schreibt man ja in Python die Klassen-Namen groß oder in CamleCase. Nun wollte ich in PyLucid z.B. mal den Plugin Name "pageadmin" in "PageAdmin" ändern.
In PyLucid muß der Name eines Plugins an einigen Stellen genau gleich lauten:
Wenn ich also alles konsequent in CamleCase schreiben würde, dann ist in der URL nicht page_admin, sondern PageAdmin... Wenn nun der Browser die URL mit lower() behandelt, weiß der plugin_manager nicht mehr welches Plugin gemeint ist und kann das nicht Ausführen.
Ich meine ich hatte ein Problem mit einem http-Redirect in django. Ich hatte Firefox und den django-dev-server genutzt.
Das eigentliche "Problem":
Normalerweise schreibt man ja in Python die Klassen-Namen groß oder in CamleCase. Nun wollte ich in PyLucid z.B. mal den Plugin Name "pageadmin" in "PageAdmin" ändern.
In PyLucid muß der Name eines Plugins an einigen Stellen genau gleich lauten:
- 1. Verzeichnisname: "./PyLucid/plugins_internal/page_admin/"
2. Dateiname: "./PyLucid/plugins_internal/page_admin/page_admin.py"
3. Klassenname im Skript: "class page_admin(PyLucidBaseModule):"
4. Name der config Datei: "./PyLucid/plugins_internal/page_admin/page_admin_cfg.py"
Wenn ich also alles konsequent in CamleCase schreiben würde, dann ist in der URL nicht page_admin, sondern PageAdmin... Wenn nun der Browser die URL mit lower() behandelt, weiß der plugin_manager nicht mehr welches Plugin gemeint ist und kann das nicht Ausführen.
- jens
- Python-Forum Veteran
- Beiträge: 8502
- Registriert: Dienstag 10. August 2004, 09:40
- Wohnort: duisburg
- Kontaktdaten:
OK, Ich habe es jetzt nochmal getestet und sowohl ein normaler Link als auch ein http-Redirect funktionierten einwandfrei. Mit Firefox unter Windows und Linux und mit dem IE7.
Dann weiß ich nicht, warum das letztens nicht geklappt hat... Naja, ich werde mal die Plugins alle umbenennen und dann mal sehen...
Dann weiß ich nicht, warum das letztens nicht geklappt hat... Naja, ich werde mal die Plugins alle umbenennen und dann mal sehen...
Das wage ich mal ganz arg in Frage zu stellen. Richtig ist aber, dass Windows-Dateisysteme aber dahingehend case-insensitive sind, dass sie keine zwei bis auf die Groß-/Kleinschreibung identischen Namen zulassen. Entsprechend sollte der Apache bei /test.html, /TEST.html und /test.HTML stets dieselbe Datei liefern, weil nur eine unter diesem/n Namen im Dateisystem existieren.gerold hat geschrieben:Der Apache unter Linux achtet exakt auf Groß-/Kleinschreibung. Der Apache unter Windows nicht.
Für Action-Namen in URLs bevorzuge ich mittlerweile foo_bar gegenüber FooBar/fooBar, weil Letzeres bei ungünstigen Buchstabenkombinationen schon mal verwirrend, unleserlich oder missverständlich werden kann (so sehen z.B. das große 'i' und das kleine 'L' gewöhnlich hinreichend gleich aus).
- jens
- Python-Forum Veteran
- Beiträge: 8502
- Registriert: Dienstag 10. August 2004, 09:40
- Wohnort: duisburg
- Kontaktdaten:
Ich möchte es aber vermeiden zwei verschiedene Schreibweisen zu Pflegen und auf der anderen Seite möchte ich gern, das die Klassennamen Python-like geschrieben sind...Y0Gi hat geschrieben:Für Action-Namen in URLs bevorzuge ich mittlerweile foo_bar gegenüber FooBar/fooBar, weil Letzeres bei ungünstigen Buchstabenkombinationen schon mal verwirrend, unleserlich oder missverständlich werden kann (so sehen z.B. das große 'i' und das kleine 'L' gewöhnlich hinreichend gleich aus).
Python schreibt ja keine Klassenbenennungsmethode explizit vor, sondern nur PEP8 gibt Tipps und Hinweise für verständlicheren, ordentlicheren Codeaufbau.jens hat geschrieben:Ich möchte es aber vermeiden zwei verschiedene Schreibweisen zu Pflegen und auf der anderen Seite möchte ich gern, das die Klassennamen Python-like geschrieben sind...Y0Gi hat geschrieben:Für Action-Namen in URLs bevorzuge ich mittlerweile foo_bar gegenüber FooBar/fooBar, weil Letzeres bei ungünstigen Buchstabenkombinationen schon mal verwirrend, unleserlich oder missverständlich werden kann (so sehen z.B. das große 'i' und das kleine 'L' gewöhnlich hinreichend gleich aus).
CamelCase erinnert mich eher an Wiki (MoinMoin) anstatt an Python.
Ich würde es wie Y0Gi mit foo_bar lösen, da die Wörter dann gut und schnell erkannt werden können.
Dann bau' dir doch einfach einen Style-Konverter, der die Klassennamen für das Routing URL-tauglich umbenennt.jens hat geschrieben:Ich möchte es aber vermeiden zwei verschiedene Schreibweisen zu Pflegen und auf der anderen Seite möchte ich gern, das die Klassennamen Python-like geschrieben sind...