Diverse Verständnisprobleme - Webseitenerstellung mit Python

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
lunar

Beitragvon lunar » Donnerstag 11. Dezember 2008, 19:36

Auf der anderen Seite sollte man immer auch bedenken, dass man dann als Admin dieses VServers allein für ihn verantwortlich ist. D.h. man muss sich z.B. selbst um die Absicherung kümmern.
Benutzeravatar
jens
Moderator
Beiträge: 8458
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Beitragvon jens » Freitag 12. Dezember 2008, 09:23

Ganz genau, siehe: [wiki]Python Webspace#DochBesserEinenEigenenVserverOderDediziertenServer[/wiki]

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Y0Gi
User
Beiträge: 1454
Registriert: Freitag 22. September 2006, 23:05
Wohnort: ja

Beitragvon Y0Gi » Freitag 12. Dezember 2008, 11:20

Richtig. Beim Entwickeln und Betreiben öffentlich zugänglicher Anwendungen und speziell im Web ist verantwortungsvolles Handeln allerdings ohnehin für mich ein Grundpfeiler.
orschiro
User
Beiträge: 60
Registriert: Donnerstag 11. Dezember 2008, 16:10
Kontaktdaten:

Beitragvon orschiro » Freitag 12. Dezember 2008, 11:32

Hallo Leute,

ich bin sichtlich beeindruckt von der regen Beteiligung. Und doch ist mir vieles noch etwas unverständlich. :?

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 - so zumindest habe ich das des Öfteren mit PHP gemacht.

Wie würde ich so etwas unter Python angehen?
Mir also Zeit ersparen und eine Art Templatesystem erstellen.
Zap
User
Beiträge: 533
Registriert: Freitag 13. Oktober 2006, 10:56

Beitragvon Zap » Freitag 12. Dezember 2008, 11:41

Dazu muss man sich kein Template-System erstellen sondern verwendet eines wie zum Beispiel mako oder jinja.
Man schreibt dann eine Master-Seite in welcher das grundlegende Design festgelegt ist und füllt diese in den eigentlichen Seiten mit Inhalt.
Benutzeravatar
jens
Moderator
Beiträge: 8458
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Beitragvon jens » Freitag 12. Dezember 2008, 12:26

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

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5554
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Telfs (Tirol)
Kontaktdaten:

Beitragvon gerold » Freitag 12. Dezember 2008, 16:06

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

Beitragvon Y0Gi » Freitag 12. Dezember 2008, 18:04

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:

Beitragvon orschiro » Samstag 13. Dezember 2008, 13:39

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
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Samstag 13. Dezember 2008, 14:11

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 Modvoice
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5554
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Telfs (Tirol)
Kontaktdaten:

Beitragvon gerold » Samstag 13. Dezember 2008, 14:18

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:

Beitragvon orschiro » Samstag 13. Dezember 2008, 14:33

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)

Beitragvon DatenMetzgerX » Samstag 13. Dezember 2008, 14:55

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: 5554
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Telfs (Tirol)
Kontaktdaten:

Beitragvon gerold » Samstag 13. Dezember 2008, 15:03

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.
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Samstag 13. Dezember 2008, 16:08

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 Modvoice

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder