Python Webprogrammierung Einbindung in HTML?

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

@mcdaniels: Du musst ja aber erst einmal Kenntnisse von allen möglichen Konzepten und Gefahren haben; als Anfänger kann man nicht alles auf einmal lernen. In der freien und "wilden" Mikro-Webframework-Welt musst Du also unmittelbar auch so etwas berücksichtigen, und gucken wie man sich mit gewählten Libs schützt, oder ggf. selber einen Schutz implementiert.
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
mcdaniels
User
Beiträge: 168
Registriert: Mittwoch 18. August 2010, 19:53

Du musst ja aber erst einmal Kenntnisse von allen möglichen Konzepten und Gefahren haben; als Anfänger kann man nicht alles auf einmal lernen.
Ja genau! Habe oben noch etwas dazu geschrieben (edit) hatte sich überkreuzt.

Von daher gesehen mach dann Django sicher mehr Sinn!
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

mcdaniels hat geschrieben:Ich werfe hier mal ein: Django bringt diese Absicherungen mit. Als Anfänger bekommt man davon dann allerdings nichts mit. Einerseits gut, dass Django davor schützt, andererseits aber auch wieder nicht, da der Anfänger dann nicht weiß, wie er das abseits von Django zu handhaben hat.
Naja, so transparent ist das ja nicht, wenn man die Dokumentation liest, dann steht da ja auch gegen was wie vorgegangen wird. :)
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
mcdaniels
User
Beiträge: 168
Registriert: Mittwoch 18. August 2010, 19:53

Ich hab jetzt mal die ersten 2 Teile des Tutorial durch. Grundsätzlich verstehe ich es ja. Allerdings wäre ich nicht im Stande mit den erhaltenen Informationen - ohne immer wieder nachzusehen - etwas auf die Beine zu stellen.

Es stellt sich mir die Frage, ob ich nicht doch eher wieder zurück zu Konsolenapps wechseln sollte, bis ich das im Schlaf (und rückwärts) beherrsche... Ich kann mit Modulen, Funktionen und Klassen etc etwas anfangen, aber eventuell ist der Schritt im Moment doch etwas "überdimensioniert" für mich...

Ich komme mir bei den Beispielen in etwas so vor, wie wenn ein Pythoneinsteiger gleich mit Tkinter beginnt...

Das kann nicht gut sein ;)
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

snafu hat geschrieben:Den Einwand verstehe ich nicht so ganz. Was ist daran lächerlich, ein Mikroframework zu benutzen, weil man die Aufgeblähtheit von Django vermeiden will, wenn die Aufgabenstellung diesen Umfang nicht erfordert?
Damit hast du recht. Allerdings ist es doch oft so, das die Anforderungen wachsen. Dann will man doch was mit einer DB machen, dann doch Usereingaben (forms) nutzten... Man nutzt den Zusatz X, dann Y... und irgendwann hat man sich doch ein richtiges Framework zusammen gestellt.

Der Vorteil von Django gegenüber selbst zusammengestelltem Framework:
* Nur eine Doku
* Nur eine Community

Mittlerweile kann man auch unzählige zusätzliche Django Apps nutzten. In PyLucid hatte ich erst alles selbst machen wollen. Dann ein paar kleine Frameworks genutzt, dann Django und nun immer mehr externe Apps dazu. Mittlerweile ist das schon eine lange Liste: http://www.pylucid.org/en/download/package-info/

Nächstes Ziel ist aus PyLucid noch mehr einzeln nutzbare Apps zu extrahieren.

Wenn man natürlich auf externe Apps zurück greift hat man wieder mehrere Stellen für Doku/Community. Aber man hat auch mehr an Funktionalität...

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
mcdaniels
User
Beiträge: 168
Registriert: Mittwoch 18. August 2010, 19:53

Irgendwie bleib ich grade wieder hängen... Mir sind teilweise die Vorgehensweisen im Tutorial (ab Part 3 / 4 ist nicht klar). Will heißen, dass ich den Code nicht interpretieren kann. Dies wiederum lässt mich vermuten, dass ich mit Vollgas wieder retour zur Konsole sollte (Grundlagen wälzen), was allerdings eher langweilig ist. Vor allem deshalb, da ich mich nicht motivieren kannt etwas zu "basteln" (ideenlos...)

In Summe komme ich (wiedermal) nicht vom Fleck, was mich nicht grade positiv stimmt. :roll: Naturgemäß schwirren da wieder die Gedanken durch den Kopf, ob man nicht fürs Programmieren geschaffen sein könnte...

Irgendwas mache ich definitiv falsch!

LG
Daniel
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

mcdaniels hat geschrieben: Vor allem deshalb, da ich mich nicht motivieren kannt etwas zu "basteln" (ideenlos...)
Was wolltest Du denn in Sachen Webapp umsetzen? Das ganze HTML ist ja nur Darstellung - die Logik kann man ja auch getrennt davon umsetzen. Insofern könntest Du doch evtl. genau diese Idee mit einem CLI-Interface umsetzen.
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
mcdaniels
User
Beiträge: 168
Registriert: Mittwoch 18. August 2010, 19:53

Servus,
dachte da zuerst an etwas Einfaches zb ein Gästebuch. (HTML + CSS beherrsche ich, obwohl das ja keine Programmiersprache ist ;) ) .

LG
Daniel
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

mcdaniels hat geschrieben:Servus,
dachte da zuerst an etwas Einfaches zb ein Gästebuch.
Na dann überlege Dir eben, welche Funktionalität es dafür braucht!

- man braucht wohl irgend eine Datenstruktur, in der man alle für einen Eintrag benötigten Daten zusammen hält; also entweder ein Dictionary oder eine Klasse aus dem Bauch heraus.

- man will Einträge anzeigen lassen

- man will ggf. immer nur eine gewisse Anzahl anzeigen lassen ("Pagination")

- man muss diese Datensätze irgend wie speichern, also musst Du über Persistenz nachdenken. Das kann erst einmal über JSON gehen, oder Du gehst direkt über SQL (SQLite) oder gar eine NOSQL-DB...

- man will einen neuen Eintrag schreiben

- man will ggf. einen löschen dürfen

Das ist doch alles wunderbar ohne "Firlefanz" als simple CLI-App machbar! Imho ähnelt das doch den klassischen Beispielen von Telefonbuch- oder Adressbuch-Programmen, die Anfänger immer gerne implementieren.
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
mcdaniels
User
Beiträge: 168
Registriert: Mittwoch 18. August 2010, 19:53

Hallo,
werd wohl mal eher auf SQLite setzen. Da das aber nun absolut nix mehr mit dem Eröffnungspost zu tun hat mach ich ggf. einen neuen Thread auf.

LG
Daniel
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

mcdaniels hat geschrieben:werd wohl mal eher auf SQLite setzen.
Und schon ist es hilfreich eine Abstraktionsschicht zu haben.

Also für ein Gästebuch braucht man min. zwei Hilfsmittel: Etwas um Formulare darzustellen und zu validieren und die Abstraktionsschicht zur DB.

Kann man natürlich alles per Hand machen. Vielleicht für den Anfang auch ganz nett, um mal alles von unten zu sehen. Aber auf langer Sicht gesehen ist es besser auf fertige Bibliotheken zu setzten. Mit den lassen sich dann auch schwierigere Aufgaben in Zukunft lösen.

Und schon ist man wieder bei der Frage: http://wiki.python.de/Web-Frameworks#We ... w-r_wen.3F

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

jens hat geschrieben: Und schon ist man wieder bei der Frage: http://wiki.python.de/Web-Frameworks#We ... w-r_wen.3F
Eigentlich nur indirekt... hier ginge es ja um ORM / SQL-Abstraction Layer ;-) Aber da fällt einem ja eh nur SQLAlchemy ein.

Da der OP aber wohl noch Probleme mit den Grundlagen hat, soll er ruhig erst mal so anfangen. Danach kann und sollte er Schritt für Schritt die App aufpolieren; das kann ja auch mit der Flexibilisierung der Persistenz anfangen (Wahl ob DB oder Flat-File, je nach Wahl andere Mechanismen usw).
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
mcdaniels
User
Beiträge: 168
Registriert: Mittwoch 18. August 2010, 19:53

Wahrscheinlich spielt bei mir auch der Faktor Zeit eine Rolle. Mal kann ich wirklich tagelang bei Python "dabei" bleiben, dann wieder Wochen nicht...(da verlier ich dann schon mal bereits Gelerntes) sicher eher nicht optimal...
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Das Erlernen von Paradigmen und Idiomen ist aber analog zum Fahrradfahren; einmal gelernt vergisst man es kaum. Details oder auch das Spezialwissen um Module, Built-in Functions usw. vergisst man sicherlich eher; aber da kommt man dann auch schnell wieder rein, wenn man es wieder regelmäßig braucht und in der Doku nachschlägt.
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

mcdaniels hat geschrieben:Wahrscheinlich spielt bei mir auch der Faktor Zeit eine Rolle. Mal kann ich wirklich tagelang bei Python "dabei" bleiben, dann wieder Wochen nicht...(da verlier ich dann schon mal bereits Gelerntes) sicher eher nicht optimal...
Das geht mir ganz genauso. Darum dauern auch Dinge einfach lange...
Hilfreich: viele Hinweise in den code packen (DocStrings).
Ich bin auch froh, das ich bei Django eine sehr gute Dokumentation habe...

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Benutzeravatar
Kebap
User
Beiträge: 687
Registriert: Dienstag 15. November 2011, 14:20
Wohnort: Dortmund

Ich kenne Python jetz schon eine ganze Weile, aber hatte genau das gleiche Gefühl, nachdem ich das Django Tutorial zuletzt durchgearbeitet hatte..
mcdaniels hat geschrieben:Ich hab jetzt mal die ersten 2 Teile des Tutorial durch. Grundsätzlich verstehe ich es ja. Allerdings wäre ich nicht im Stande mit den erhaltenen Informationen - ohne immer wieder nachzusehen - etwas auf die Beine zu stellen.

Es stellt sich mir die Frage, ob ich nicht doch eher wieder zurück zu Konsolenapps wechseln sollte, bis ich das im Schlaf (und rückwärts) beherrsche... Ich kann mit Modulen, Funktionen und Klassen etc etwas anfangen, aber eventuell ist der Schritt im Moment doch etwas "überdimensioniert" für mich...

Ich komme mir bei den Beispielen in etwas so vor, wie wenn ein Pythoneinsteiger gleich mit Tkinter beginnt...

Das kann nicht gut sein ;)
MorgenGrauen: 1 Welt, 8 Rassen, 13 Gilden, >250 Abenteuer, >5000 Waffen & Rüstungen,
>7000 NPC, >16000 Räume, >200 freiwillige Programmierer, nur Text, viel Spaß, seit 1992.
Antworten