einfaches, experimenelles "web framework"

Stellt hier eure Projekte vor.
Internetseiten, Skripte, und alles andere bzgl. Python.
Antworten
Costi
User
Beiträge: 545
Registriert: Donnerstag 17. August 2006, 14:21

eien web page als klasse wird in einen dict aenlichen obkekt gespeichert (zb shelve oder zodb). mit Threading: hier

eien mehr oder wenige nuetzliche classen-homepage die dies nuetzt: hier

etwas code das beides zum zusammenspiel bringt: hier


gruesse
costi
cp != mv
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Wow, du hast in allen drei Dateien fast keine Kommentare und die einzigen Kommentare sind zudem noch inline.. :shock:
Und um ehrlich zu sein verstehe ich nicht, was dein Post aussagt.

Du hast also ein "Webframework" geschafften, das webentwicklung so weit wie möglich verkompliziert?
Costi hat geschrieben:eien web page als klasse wird in einen dict aenlichen obkekt gespeichert (zb shelve oder zodb)
Darunter stelle ich mir eher sowas vor wie Nevow Stan oder Brevé. Ist auch wesentlich simpler und eleganter.

Achja, und "for_ever" schreibt man als "forever", also zusammen - das ist ein Wort.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Costi
User
Beiträge: 545
Registriert: Donnerstag 17. August 2006, 14:21

also ich finds gut


es ging dabei ja nur um einen experiment und nicht um ein XY-famous-monster-framework clone
cp != mv
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Costi hat geschrieben:es ging dabei ja nur um einen experiment und nicht um ein XY-famous-monster-framework clone
Oder darum den grausamsten möglichen Code zu produzieren. Einrückung mit Tabs zum Beispiel. Oder die Signatur von Server.__init__(): dasmeinst du doch nicht ernst, oder? Von PEP8 hast du aber sicherlich schon mal gehört, oder? Auch while 1: nutzt man schon längst nichtmehr, seitdem mit Python 2.2.x die Namen True und False dazugekommen sind, die viel aussagekräftiger sind. Fürslogginggibt esübrigens das loggin-Modul, auch schon lange.

Oder noch so ein Highlight:

Code: Alles auswählen

method, req, proto = resp.split(" ", 2)#vileicht auch 2
Vielleicht sinds aber auch 5, 10, oder 65356? Wer braucht denn bitte solche nichtssagenden Kommentare?

Mal weitergucken:

Code: Alles auswählen

self.logger("got request from " + ip + ":\n " + repr(resp) + "\nparsed it to: " + str(param))
Für solche zwecke gibt es eben Formatstrings, sie machen solche seltsamen Strukturen lesbarer.

webPage (seltsamer Name, welche Konvention ist denn das?) hat auch noch eine Funktion WebPage._formatHTML() die ja richtig gruselig ist. Davon abgesehen gibt es kein HTML 4.1, sondern nur HTML 4.01. Und jedes Leerzeichen durch   zu erstetzen ist ebenso unrichtig. Ich kann mir absolut nicht vorstellen, dass irgendwer nachvollziehen kann, wie dort HTML generiert wird.. obfuscation schlechthin.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
sape
User
Beiträge: 1157
Registriert: Sonntag 3. September 2006, 12:52

Leo nicht soviel nörgeln ;)

Ich möchte nochmal PEP8 in den Raum werfen. Sollte man sich IMHO daran halten. Daher kann ich das nicht genug wiederholen.


Zu deinem Code ansich kann ich nichts sagen (außer das es gegen etliche wichtigste Regeln von PEP8 verstößt) da ich mich in dem Gebiet nicht auskenne.

lg
sape
User
Beiträge: 1157
Registriert: Sonntag 3. September 2006, 12:52

Leonidas hat geschrieben: webPage (seltsamer Name, welche Konvention ist denn das?) hat auch noch eine Funktion WebPage._formatHTML() die ja richtig gruselig ist.
Ja, IMHO solte man HTML-Code von Python-Code trennen (Es sei es ist ein Wegwerfscript).

Auch da

Code: Alles auswählen

self.logger("got request from " + ip + ":\n " + repr(resp) + "\nparsed it to: " + str(param))
gebe ich dir recht.

Sieht so

Code: Alles auswählen

self.logger("got request from %s:\n%s\nparsed it to: " % (ip, repr(resp), str(param)))
besser aus (Wobei ich mir jetzt nicht die Mühe gemacht habe Typen zu überprüfen. Müsste aber so grob hinhauen.).

Wobei ich würde es gleich so machen:

Code: Alles auswählen

self.logger(
    "got request from %s:\n"
    "%s\n"
    "parsed it to: " % (
        ip, repr(resp), str(param)
    ))
Ist so offensichtlicher.

lg
mitsuhiko
User
Beiträge: 1790
Registriert: Donnerstag 28. Oktober 2004, 16:33
Wohnort: Graz, Steiermark - Österreich
Kontaktdaten:

sape hat geschrieben:

Code: Alles auswählen

self.logger("got request from %s:\n%s\nparsed it to: " % (ip, repr(resp), str(param)))
besser aus (Wobei ich mir jetzt nicht die Mühe gemacht habe Typen zu überprüfen. Müsste aber so grob hinhauen.).
Ich würde es so machen:

Code: Alles auswählen

self.logger("got request from %s:\n%r\nparsed it to: %s" % (ip, resp, param))
Und ansonsten schließe ich mich Leonidas an.
TUFKAB – the user formerly known as blackbird
Antworten