Mod_Python unter Win Apache 1.30 installieren

Probleme bei der Installation?
Antworten
kasuru
User
Beiträge: 11
Registriert: Sonntag 24. April 2005, 12:05
Wohnort: Detmold
Kontaktdaten:

Sonntag 8. Mai 2005, 10:44

Hi!

Ich hab hier mal nen bisschen im Forum gesucht und erlesen, dass es für Anfänger am besten ist wenn man Websites in Python programmieren will das Module mod_python für den Apache zu benutzen! Nun habe ich mir das geladen, komme aber schon bei der Installation nicht weiter, könnte mir das jemand hier erläutern???


Vielen Dank,

Kasuru
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Sonntag 8. Mai 2005, 12:45

Also, du hast Apache 1.3.0 (so antik?)... und mod_python.. aber welche Version? Für Apache 1.3.x brauchst du ein mod_python 2.x, das für deine Apache Version und dein Python kompiliert ist.

Ich habe dies gefunden, allerdings arbeitet es nur mit Apache 1.3.20 bzw .22 und nur mit Python 2.2.

Wenn du das hast, musst du es zu den anderen module kopieren und in der httpd.conf einbinden (LoadModule ggf. auch AddModule).

Oder du nimmst etwas wesentlich einfachereres: 1) CGI, 2) CherryPy, 3) Karrigell 4) Spyce, 5) Snakelets.

Und ich finde, dass mod_python nicht für Anfänger geeignet ist.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
kasuru
User
Beiträge: 11
Registriert: Sonntag 24. April 2005, 12:05
Wohnort: Detmold
Kontaktdaten:

Dienstag 10. Mai 2005, 09:56

Ich habe das Wamp System, daher mein Apache und da er läuft... (never change a running system)...

Spyce hab ich auch geladen, da steht inner readme (wenn man das so nennen darf) aber drin, dass es mod_python benötigt... Naja so wie es aussieht scheint es ohne großen Aufwand also nicht möglich zu sein Python auf HTML zu übertragen (oder ich kapiers einfach nicht, was nicht so abwegig ist da es hier anscheinend keine Anfängerfreundlichen Tipps oder Antworten zu geben scheint...)

Naja, wenn mod_python, was in fast jeden Beitrag den ich dazu gelesen habe als die beste Lösung angesagt wurde, nicht für Anfänger geeignet ist kann ich meine Facharbeit anscheinend komplett vergessen, weil hier ja jeder sagt für Anfänger is Python in HTML einzubinden zu schwer! Aber irgendwo muss man ja mal nen Anfang machen oder ??

Naja, vielleicht finde ich ja in nem anderen Forum oder so meine Antworten, schade nur das ich bloß noch 2 wochen Zeit habe und es langsam echt eng wird...

mfg, Kas
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Dienstag 10. Mai 2005, 12:45

kasuru hat geschrieben:Spyce hab ich auch geladen, da steht inner readme (wenn man das so nennen darf) aber drin, dass es mod_python benötigt... Naja so wie es aussieht scheint es ohne großen Aufwand also nicht möglich zu sein Python auf HTML zu übertragen (oder ich kapiers einfach nicht, was nicht so abwegig ist da es hier anscheinend keine Anfängerfreundlichen Tipps oder Antworten zu geben scheint...)
Nein, Spyce brauch absolut nicht mod_python, es läuft nur mit mod_python am schnellsten. Guch dir mal die Installationsanleitung an, dort steht wie man Spyce mit (Fast)CGI zum laufen bekommt, als acuh eben mod_python und auch über mod_rewrite (Proxy). Bei Spyce braucht du Apache eigentlich gar nicht, da Spyce einen eigenen Webserver dabei hat, also ist die Installation gar nicht schwer. Ich habe mit auch in den letzten Tagen etwas von CherryPy angeschut, das ist nicht sonderlich PHP-mäßig, aber da hat jedes Script einen eigenen Webserver. Etwas AMP-ähnliches bietet Karrigell, statt Apache hat es einen eigenen Webserver, statt MySQL ist Gadfly dabei (du kannst auber auch andere Datenbanken nutzen) und die Rolle von PHP übernimmt PIH (Python inside HTML). Das ganze ist ziemlich einfach zu installieren, nach höchstens 10 Minuten bist du fertig (ich habe bei mir nicht gestoppt, aber es ging trotzdem schnell).
kasuru hat geschrieben:Naja, wenn mod_python, was in fast jeden Beitrag den ich dazu gelesen habe als die beste Lösung angesagt wurde, nicht für Anfänger geeignet ist kann ich meine Facharbeit anscheinend komplett vergessen, weil hier ja jeder sagt für Anfänger is Python in HTML einzubinden zu schwer! Aber irgendwo muss man ja mal nen Anfang machen oder ??
Nein, bitte unterscheide zwischen beste und schnellste. mod_python ist zweifellos die schnellste Möglichkeit. Aber wenn du nicht nur nach Performance suchst, gibt es Alternativen die dich sicher mehr interessieren würden (eben das genannte Karrigell würde ich dir vorschlagen, aber auch "normale" CGIs sind kein großes Problem). Deine Aufgabenstellung lautet ja, etwas PHP ähnliches zu finden (also Spyce, Karrigell), nicht etwas zu finden dass Java Servlets ähnelt, oder?

Das Probelm ist vielleicht weniger die Komplitation, sondern eher die zig verschiedenen Möglichkeiten die du hast.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
XT@ngel
User
Beiträge: 256
Registriert: Dienstag 6. August 2002, 14:36
Kontaktdaten:

Dienstag 10. Mai 2005, 12:56

kasuru hat geschrieben: kann ich meine Facharbeit anscheinend komplett vergessen, weil hier ja jeder sagt für Anfänger is Python in HTML einzubinden zu schwer!
Hallo,
hört sich ja fast so an, als ob das Forum schuld daran wäre das Du deine Facharbeit nicht auf die Reihe bekommst ;-)
Musst Du Python in HTML einbinden? Ist das die Vorgabe?
Oder sollst du einfach nur eine Webanwendung in Python schreiben?

Du musst nicht mit dem Kopf durch die Wand wenn du offensichtlich auch einfachere Lösungen und Wege nutzen kannst.
Und in deinem Fall ist das Python übers CGI. Vielleicht nutzt du dann noch ne Template class und die Welt ist wieder in Ordnung.

MfG
Andreas
kasuru
User
Beiträge: 11
Registriert: Sonntag 24. April 2005, 12:05
Wohnort: Detmold
Kontaktdaten:

Dienstag 10. Mai 2005, 17:33

Hey!

Sorry, als ich den Beitrag geschrieben habe war ich ein wenig sehr wütend, da isser wohl ein wenig blöde ausgefallen... Sicherlich ist das Forum hier nicht schuld wenn ich meine FA verhaue, sollte auch nicht den Eindruck erwecken... Naja, da ich mich aber mit Apache so gut wie Null auskenne konnte/kann ich mit meinen doch eigentlich sehr guten Englisch Kenntnissen einfach nichts mit der Anleitung anfangen und hatte hier nach Hilfe gesucht, wenn es jedoch bessere Alternativen gibt so versuche ich die mal, danke für die Tipps!

Was hat es mit der Template class auf sich ??

mfg und sorry nochmal, Kasuru
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Dienstag 10. Mai 2005, 17:48

kasuru hat geschrieben:Was hat es mit der Template class auf sich ??
Ich vermute mal XT@ngel meinte string.Template. Damit kann man Templates haben (also Vorlagen mit leeren Feldern/Platzhaltern, so auch ganze HTML Dateien), die man dann zur Laufzeit des Programmes mit den gegebenen Daten füllt. Hier hast du mal ein Anwendungsbeispiel.

Natürlich gibt es auch zu string.Template auch wieder zig Alternativen, die auf WebProgramming zu finden sind (ich habe aber nur etwas Erfahrung mit Cheetah, noch bevor es string.Template gab). Aber für das meiste reicht wohl string.Template vollkommen.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
XT@ngel
User
Beiträge: 256
Registriert: Dienstag 6. August 2002, 14:36
Kontaktdaten:

Dienstag 10. Mai 2005, 19:32

Anhand von:
http://www.python-forum.de/viewtopic.php?t=2829 will ich dir mal ein Beispiel zeigen.

Nehmen wir an du hast ein Tuple das mehrere Dict, enthält.
So wie es zum Beispiel nach einer SQL Abfrage möglich ist.

Code: Alles auswählen

dict1 = {}
dict1['Nr']  = 1
dict1['Name'] = "Andreas"
dict1['City']  = "München"

dict2 = {}
dict2['Nr']  = 2
dict2['Name'] = "Franz"
dict2['City']  = "Coburg"

DBResult = (dict1, dict2)
Nun wollen wir die Daten mittels HTML darstellen, natürlich könnte man jetzt schreiben:

Code: Alles auswählen

print "Content-Type: text/html"
print

print """
<html>
   <head>
      <title>Mein HTML</title>
   </head>
   
   <body>
      <table>
         <tr>
            <td>Nr</td><td>Name</td><td>City</td>
         </tr>
""""

for line in DBResult:
    print """<tr>
                <td>%s</td><td>%s</td><td>%s</td>
             </tr>""" % (line['Nr'], line['Name'], line['City'])

print """</table></body></html>"""
Geht schnell und einfach, bei großen Projekten verliert man jedoch schnell die Übersicht.

Mit Templates ist es möglich das Design und den Code zu trennen.
Dazu erstellen wir uns ein Template

MeinTemplate.html:

Code: Alles auswählen

<html>
   <head>
      <title>{TITLE}</title>
   </head>
   
   <body>
      <table>
         <tr>
         <td>Nr</td><td>Name</td><td>City</td>
         </tr>
         <!-- BEGIN Line -->   
         <tr>
         <td>{NR}</td><td>{NAME}</td><td>{CITY}</td>
         </tr>
          <!-- END Line -->
       </table>
    </body>
</html>
Und nun der dazu passende Python code:

Code: Alles auswählen

print "Content-Type: text/html"
print

import cgitb; cgitb.enable()
from PlowPlate import PlowPlate
TemplateObj      = PlowPlate("MeinTemplate.html")
TemplateObj['TITLE'] =" Meine TPL Seite"

LineBlock_HTML = self.TemplateObj.block('Line')
for line in DBResult:
    LineBlock_HTML['NR']     = line['Nr']
    LineBlock_HTML['NAME'] = line['Name']
    LineBlock_HTML['CITY']    = line['City']
LineBlock_HTM.row()

print str(TemplateObj)
Ich hoffe dieses Beispiel hat dir einen kleinen Einblick gegeben.

MfG
Andreas
kasuru
User
Beiträge: 11
Registriert: Sonntag 24. April 2005, 12:05
Wohnort: Detmold
Kontaktdaten:

Mittwoch 11. Mai 2005, 19:39

ok,ich lass mir das mal alles auffer zunge zergehen, wenn ich weitere fragen habe stell ich sie dann in nem andern thread...

thx you guys

Kasuru
Antworten