Seite 3 von 4
Verfasst: Dienstag 13. April 2010, 16:51
von Dauerbaustelle
Oder das. Jedenfalls passen Anwendungs- und Softwarekonfiguration nicht zusammen. :-)
Verfasst: Mittwoch 14. April 2010, 11:21
von lynadge
Hm...
In der Doku steht
Wie sieht der aus? So?
Code: Alles auswählen
import bottle
@bottle.route('/')
def index():
return "Hello World!"
// Edit
Code: Alles auswählen
#!/usr/bin/python
# -*- coding: UTF-8 -*-
from cgi import escape
import sys, os
from flup.server.fcgi import WSGIServer
def app(environ, start_response):
start_response('200 OK', [('Content-Type', 'text/html')])
yield '<h1>FastCGI Environment</h1>'
yield '<table>'
for k, v in sorted(environ.items()):
yield '<tr><th>%s</th><td>%s</td></tr>' % (escape(k), escape(v))
yield '</table>'
WSGIServer(app).run()
Das müsste ein FastCGI Beispiel sein, was auch läuft auf dem Server.
Wie müsste ich das Script jetzt anpassen damit es mit bottle läuft?
Mich wundert aber auch das ich in def app() nichts ändern bzw hinzufügen kann, ein neues yield mit einem kleinen text scheint nicht zu funktionieren ohne das ein "500 Internal Server Error" kommt.
Verfasst: Mittwoch 14. April 2010, 12:48
von frabron
Für mod_wsgi
Code: Alles auswählen
import bottle
@bottle.route('/')
def index():
return "Hallo"
application = bottle.default_app()
http://bottle.paws.de/page/docs#apache-mod_wsgi
Verfasst: Mittwoch 14. April 2010, 13:21
von lynadge
Geht leider auch nicht in einer .wsgi datei mit chmod 755. :/
Verfasst: Mittwoch 14. April 2010, 14:00
von Dauerbaustelle
Nutze mal den bottle-Flup-Server.
Verfasst: Mittwoch 14. April 2010, 14:06
von lynadge
Ok, das würde dann so aussehen oder?
Code: Alles auswählen
#!/usr/bin/python
import bottle
@bottle.route('/')
def index():
return 'Hello World!'
bottle.run(server=FlupServer)
In einer .py Datei, richtig?
Verfasst: Mittwoch 14. April 2010, 14:08
von Dauerbaustelle
Ich denke doch. Edit: Die Dateiendung ist doch eigentlich Wurscht, oder? Musst halt nur dem Apache sagen, welchen Port der FCGI-Server hat.
Verfasst: Mittwoch 14. April 2010, 14:24
von lynadge
Code: Alles auswählen
#!/usr/bin/python
import bottle
@bottle.route('/')
def index():
return 'Hello World!'
bottle.run(server=bottle.FlupServer, host='python.barfooz.de', port=80)
So sieht der Code jetzt aus. Geht aber leider immer noch nicht. :/
Mein Admin meinte es liegt daran das bottle einen eigenen Server mit bringt.
Verfasst: Mittwoch 14. April 2010, 14:28
von Dauerbaustelle
Hab ich das eigentlich nur nirgends gefunden, oder hast du noch gar nicht mitgeteilt ob du mod_wsgi oder fcgi nutzt?
Verfasst: Mittwoch 14. April 2010, 14:40
von lynadge
Heh, ja sorry fürs Durcheinander.
Anfangs wollte ich ja CGI verwenden, nur zur Übung um zu sehen wies Funktioniert. Als das geklappt hat wollte ich es mit WSGI probieren, da das aber scheinbar nicht klappt will ich nun FastCGI benutzen.
fcgi sowie mod_wsgi sollen laut Admin möglich sein.
Hat das eigentlich irgendeine Bewandtnis das die CGI Version einmal Funktioniert hat aber nach dem 2ten Aktualisieren nicht mehr?
Verfasst: Mittwoch 14. April 2010, 14:46
von Dauerbaustelle
Bestimmt hat sich was an der Konfiguration geändert oder du am Code, das ist ja auch ein ziemliches Chaos hier.
Dann lies dir doch mal ein Tutorial zum Thema bottle über FCGI durch und hau deinen Admin an, dass er die entsprechende Domain/URL an deinen FCGI-Prozess weitereichen soll.
Verfasst: Mittwoch 14. April 2010, 14:55
von lynadge
Naja, aber das fcgi Beispiel ohne bottle Funktioniert ja, warum Funktioniert bottle dann nicht?
Das kann doch dann wieder nich am Server liegen oder?
Verfasst: Freitag 16. April 2010, 07:33
von lynadge
Da das fcgi ohne bottle funktioniert werde ich ohne Framework weiter machen.
Ich danke euch für eure Hilfe, war echt cool so schnell Antworten zu bekommen.
@defnull, auch wenn ich es nicht zum laufen gebracht habe finde ich dein framework gut und es hat mir auch von allen am besten gefallen, sollte ich es irgendwann mal zum laufen bringen lass ich es wissen.

</schleimer>
Verfasst: Freitag 16. April 2010, 08:33
von jens
deadshox hat geschrieben:Da das fcgi ohne bottle funktioniert werde ich ohne Framework weiter machen.
IMHO eine schlechte Idee!
Verfasst: Freitag 16. April 2010, 08:48
von lynadge
Warum?
Verfasst: Freitag 16. April 2010, 08:51
von jens
Weil du alles selber machen musst. Somit baust du dir früher oder später dein eigenes Framework. Kann natürlich auch spaß machen, wir haben ja noch nicht genügend
Wenn, dann solltest du eine WSGI app machen.
Sollte dir bottle nicht gefallen, dann schau dir doch die anderen mal an:
http://wiki.python-forum.de/Web-Frameworks
Verfasst: Freitag 16. April 2010, 09:13
von lynadge
jens hat geschrieben:Weil du alles selber machen musst. Somit baust du dir früher oder später dein eigenes Framework. Kann natürlich auch spaß machen, wir haben ja noch nicht genügend

Ja, das ist mir bewusst, klar werde ich das rad nicht neu erfinden aber mein Lerneffekt ist einfach größer.

Und ich weiß was ich hab und muss mich nirgends einarbeiten.
jens hat geschrieben:Wenn, dann solltest du eine WSGI app machen.
Scheinbar war ich zu doof dazu, denn ich habe kein gutes Beispiel gefunden.
Die Liste habe ich schon durch und wie gesagt, bottle gefiel mir ja am besten, schon alleine weil ich es nicht Installieren musste. Weshalb alle anderen auch wegefallen sind.
Ich schließe auch nicht aus das ich bottle nie nutzen werde. Zum ende des Jahres bekomme ich auch mehr rechte auf dem Server, dann kann ich ihn mir selber anpassen und bekomme bottle dann vielleicht zum laufen.

Verfasst: Freitag 16. April 2010, 09:17
von jens
deadshox hat geschrieben:bottle gefiel mir ja am besten, schon alleine weil ich es nicht Installieren musste. Weshalb alle anderen auch wegefallen sind.
Eigentlich muß man keines der Frameworks "richtig" installieren. Pure Python module müssen nur im Pfad gefunden werden.
Deswegen kann man auch PyLucid v0.8.x (was Django nutzt) einfach per FTP auf dem Webserver schieben und gut ist. (In der v0.9 nutzten wir z.Z. virtualenv, aber es wird später auch wieder so ein "Standalone Paket" geben).
Aber wenn du einen Lerneffekt haben willst, dann mach alles selber. Aber halte dich damit nicht all zu lange auf, denn weit kommt man so nicht. Es sei den man hat viel, viel Zeit

Siehe auch:
http://www.pylucid.org/permalink/30/ent ... on-pylucid
Verfasst: Freitag 16. April 2010, 09:44
von lynadge
jens hat geschrieben:Eigentlich muß man keines der Frameworks "richtig" installieren. Pure Python module müssen nur im Pfad gefunden werden.
Deswegen kann man auch PyLucid v0.8.x (was Django nutzt) einfach per FTP auf dem Webserver schieben und gut ist. (In der v0.9 nutzten wir z.Z. virtualenv, aber es wird später auch wieder so ein "Standalone Paket" geben).
Warum wirds dann immer so "kompliziert" auf den Doku seiten dargestellt?
Ja, ich werd gucken wie ich voran komme ohne. Mir gehts auch Hauptsächlich um die WSGI sache, da ich z.b. ne Template Engine in PHP schon fertig hab und sie nur noch Portieren muss.
Ich habe in deinem Link schon was zu WSGI gefunden, das werde ich mal ausprobieren.

Verfasst: Freitag 16. April 2010, 09:49
von jens
deadshox hat geschrieben:Warum wirds dann immer so "kompliziert" auf den Doku seiten dargestellt?
Weil alle davon ausgehen, das "echte" Programmiere einen Root-Server haben
Deployment bei Python Web Apps ist z.Z. nicht sehr einfach gelöst
