Diverse Verständnisprobleme - Webseitenerstellung mit Python

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

@SYVO: Ich würde dir vorschagen, schau dir mal django an und arbeite das tutorial durch: http://docs.djangoproject.com

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

SYVO hat geschrieben:Nehmen wir einmal konkret an, ich möchte eine simple Webseite erstellen, bei der ein Header, eine Navigation und ein Footer in den eigentlichen Body-Content inkludiert werden
Hallo SYVO!

Vielleicht interessiert dich dieser Erfahrungsbericht: http://halvar.at/python/cherrypy_cheetah/

Besonders interessant dürfte für dich das Kapitel über die Vorlagenvererbung sein.

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Y0Gi
User
Beiträge: 1454
Registriert: Freitag 22. September 2006, 23:05
Wohnort: ja

Wenn du wirklich lernen willst, wie es anhand eines HTTP-Requests von einem Template und ein paar Daten zu einer XHTML-Ausgabe kommt, dann benutze Werkzeug.

Ein Template ist, wie die Übersetzung verrät, eine Vorlage. Damit ist in der Regel ein (X)HTML-Gerüst mit Platzhaltern, Bedingungen, Schleifen und evtl. noch einigem mehr gemeint. Der Kern einer Web-Applikation, die das gängige, an MVC (Model, View, Controller) angelehnte Konzept verwendet, ruft ausgehend von der angesteuerten URL eine Funktion (den "Controller") auf, die irgendwoher (etwa aus einer Datenbank) Daten holt und diese an ein Template verfüttert. Das Ergebnis des Renders des Templates mit den Daten als Kontext ist dann der Teil, der als Inhalt an den Browser geliefert wird. Eine Controller-Funktion erledigt dabei vorzugsweise eine klar eingeschränkte Aufgabe, als z. B. das Auflisten, Ansehen, Hinzufügen, Bearbeiten oder Löschen von Einträgen irgendwelcher Art.

Ein einfacher Controller sieht bei mir etwa so aus:

Code: Alles auswählen

@use_template
def newspost_index(self, limit=10):
    # Daten holen (benutzt SQLAlchemy).
    newsposts = Newspost.q.limit(limit).all()

    # Daten als Template-Kontext zurückliefern.
    return {'newsposts': newsposts}
Dabei sorgt der `use_template`-Decorator für einen Aufruf dieser Art:

Code: Alles auswählen

template_data = newspost_index()
template_name = 'newspost_index.xhtml'
body = render_template(template_name, template_data)
return Response(body)
Die Funktion selbst könnte an folgende (Werkzeug-)URL-Definition gekoppelt sein:

Code: Alles auswählen

url_map = Map([
    Rule('/newsposts', endpoint='newspost_index', method=['GET']),
])
Das Template selbst kann dann in etwa so aussehen (die Syntax entspricht dabei mehr oder weniger der von Jinja und Mako):

Code: Alles auswählen

<h1>Newsposts</h1>

<ol>
    <% for newspost in newsposts: %>
    <li>
        <h2>${newspost.title}</h2>
        <p>${newspost.body}</p>
    </li>
    <% endfor %>
</ol>
Dabei unterscheiden sich die diversen Web-Frameworks und Bibliotheken hauptsächlich darin, wie man die Daten in ein Template bekommt. Einige verlangen etwa, dass man selbst in der Controller-Funktion `render_template()` aufruft oder ähnliches.
orschiro
User
Beiträge: 60
Registriert: Donnerstag 11. Dezember 2008, 16:10
Kontaktdaten:

Hallo Leute,

danke, jetzt habe ich es denke ich verstanden. :D

Ich würde mich jetzt auch gerne ans Werk machen, bleibt nur die Frage mit dem Webspace.

Das PythonWebspace-Projekt klingt ja doch recht verlockend. Ihr würdet mir also dazu raten oder müsste nicht auch jedes Webspacepaket über Python verfügen, welches auf einem Linuxserver liegt?

Gibt es sonst noch Empfehlungen?

Weitere Anforderungen wären:

· etwa 5 GB Speicherplatz
· unbegrenzt Traffic
· etwa 100 E-Mail-Postfächer
· IMAP und POP3
· zusätzlich PHP Support
· etwa 10 MySQL Datenbanken
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

SYVO hat geschrieben:müsste nicht auch jedes Webspacepaket über Python verfügen, welches auf einem Linuxserver liegt?
Nein, eben deswegen gibt es ja die Liste. Denn Python über CGI ist eher langsam.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

SYVO hat geschrieben:· etwa 5 GB Speicherplatz
· unbegrenzt Traffic
· etwa 100 E-Mail-Postfächer
· IMAP und POP3
· zusätzlich PHP Support
· etwa 10 MySQL Datenbanken
Hallo SYVO!

V-Server --> http://www.python-forum.de/post-118609.html#118609

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
orschiro
User
Beiträge: 60
Registriert: Donnerstag 11. Dezember 2008, 16:10
Kontaktdaten:

Ein VServer wäre natürlich eine sehr gute Lösung, nur scheue ich mich etwas vor der Einrichtung. Ich habe bis dato keinerlei Erfahrungen mit VServern gemacht und so lange es adäquate Alternativen gibt, würde ich diese bevorzugen.

Aber wenn wir schon beim Thema Vserver sind, was haltet ihr von diesem Angebot für 5,99€?

http://www.greatnet.de/cms/front_content.php?idcat=5

@ Leonidas,

ich bräuchte also einen Hoster, welcher mir mindestens WSGI oder FastCGI anbietet, um sinnvoll in die Webprogrammierung einzusteigen?

Da käme mir HostingProject GbR eigentlich sehr Recht, nur nehmen diese momentan ja niemand Neues auf. Was ist mit bekannten Größen wie all-inkl.com - bieten diese das Nötige an?
Benutzeravatar
DatenMetzgerX
User
Beiträge: 398
Registriert: Freitag 28. April 2006, 06:28
Wohnort: Zürich Seebach (CH)

Ich habe meine Anwendungen momentan auf den Servern von www.webfaction.com installiert und bin soweit sehr zufrieden. Die Anforderungen werden mehr als nur erfüllt, ausserdem hast du ein ssh Zugriff =)
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

SYVO hat geschrieben:was haltet ihr von diesem Angebot für 5,99€
Hallo SYVO!
Arbeitsspeicher (RAM) - statisch: 128 MB
Das ist ziemlich wenig. Und 20 V-Server auf einem Computer ist ziemlich viel. Aber für 6 Euro im Monat -- wahrscheinlich angemessen. Lass dir auf keinen Fall einen 12-Monats-Vertrag andrehen. Zahle lieber die Einrichtungsgebühr. Das gilt für alle V-Server.

Keyweb soll recht gut sein: http://www.keyweb.de/vrsrds/index.shtml
Ich habe es selber aber noch nicht ausprobiert.

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

SYVO hat geschrieben:ich bräuchte also einen Hoster, welcher mir mindestens WSGI oder FastCGI anbietet, um sinnvoll in die Webprogrammierung einzusteigen?
Ja. Letztendlich läuft WSGI auch über FastCGI. WSGI würde auch über CGI gehen, nur wird das dann ziemlich langsam.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Antworten