[bottle] Startschwierigkeiten

Django, Flask, Bottle, WSGI, CGI…
Dauerbaustelle
User
Beiträge: 996
Registriert: Mittwoch 9. Januar 2008, 13:48

Oder das. Jedenfalls passen Anwendungs- und Softwarekonfiguration nicht zusammen. :-)
Benutzeravatar
lynadge
User
Beiträge: 112
Registriert: Sonntag 4. April 2010, 10:17

Hm...

In der Doku steht

Code: Alles auswählen

# ... add or import your bottle app code here ...
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.
frabron
User
Beiträge: 306
Registriert: Dienstag 31. März 2009, 14:36

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
Benutzeravatar
lynadge
User
Beiträge: 112
Registriert: Sonntag 4. April 2010, 10:17

Geht leider auch nicht in einer .wsgi datei mit chmod 755. :/
Dauerbaustelle
User
Beiträge: 996
Registriert: Mittwoch 9. Januar 2008, 13:48

Nutze mal den bottle-Flup-Server.
Benutzeravatar
lynadge
User
Beiträge: 112
Registriert: Sonntag 4. April 2010, 10:17

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?
Dauerbaustelle
User
Beiträge: 996
Registriert: Mittwoch 9. Januar 2008, 13:48

Ich denke doch. Edit: Die Dateiendung ist doch eigentlich Wurscht, oder? Musst halt nur dem Apache sagen, welchen Port der FCGI-Server hat.
Benutzeravatar
lynadge
User
Beiträge: 112
Registriert: Sonntag 4. April 2010, 10:17

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.
Dauerbaustelle
User
Beiträge: 996
Registriert: Mittwoch 9. Januar 2008, 13:48

Hab ich das eigentlich nur nirgends gefunden, oder hast du noch gar nicht mitgeteilt ob du mod_wsgi oder fcgi nutzt?
Benutzeravatar
lynadge
User
Beiträge: 112
Registriert: Sonntag 4. April 2010, 10:17

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?
Dauerbaustelle
User
Beiträge: 996
Registriert: Mittwoch 9. Januar 2008, 13:48

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.
Benutzeravatar
lynadge
User
Beiträge: 112
Registriert: Sonntag 4. April 2010, 10:17

Naja, aber das fcgi Beispiel ohne bottle Funktioniert ja, warum Funktioniert bottle dann nicht?

Das kann doch dann wieder nich am Server liegen oder?
Benutzeravatar
lynadge
User
Beiträge: 112
Registriert: Sonntag 4. April 2010, 10:17

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>
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

deadshox hat geschrieben:Da das fcgi ohne bottle funktioniert werde ich ohne Framework weiter machen.
IMHO eine schlechte Idee!

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Benutzeravatar
lynadge
User
Beiträge: 112
Registriert: Sonntag 4. April 2010, 10:17

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

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

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Benutzeravatar
lynadge
User
Beiträge: 112
Registriert: Sonntag 4. April 2010, 10:17

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.
jens hat geschrieben:Sollte dir bottle nicht gefallen, dann schau dir doch die anderen mal an: http://wiki.python-forum.de/Web-Frameworks
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. :)
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

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

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Benutzeravatar
lynadge
User
Beiträge: 112
Registriert: Sonntag 4. April 2010, 10:17

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?
jens hat geschrieben: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
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. ;)
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

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 :(

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Antworten