Seite 1 von 1

Bottle starten???

Verfasst: Donnerstag 20. August 2009, 10:06
von Dav1d
So mein problem mit bottle, wenn ich den Beispielcode auf meinem PC ausführe per localhost:8080

Code: Alles auswählen

#!/usr/bin/python

from bottle import route, run, request, response, send_file, abort, template

@route('/')
def hello_world():
    return 'Hello World!'

@route('/hello/:name')
def hello_name(name):
    return 'Hello %s!' % name

@route('/hello', method='POST')
def hello_post():
    name = request.POST['name']
    return 'Hello %s!' % name

@route('/static/:filename#.*#')
def static_file(filename):
    send_file(filename, root='/path/to/static/files/')

@route('/template/test')
def template_test():
    return template('template', title='Template Test', items=[1,2,3,'hallo'])
        
bottle.run('localhost', port=8080)
dann funktioniert alles, aber wie kann ich das auf meinem Webspace laufen lassen (mit wsgi) gestern im irc wurde mir geholfen (deswegen weiß ich jetzt auch dass er unter wsgi läuft) dann wurde mir gesagt dass ich eine htaccess brauche, damit ich mein 'Skript' ausführen kann:

Code: Alles auswählen

AddHandler wsgi-script .wsgi
 
RewriteBase /
RewriteEngine On
 
 
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /test.py/$1 [QSA,PT,L]
Da bekomm ich aber nur ne 404, falls ich nur AddHandler verwende wird mir der Index vom Verzeichnis angezeigt, also sollte es doch funktionieren oder?

ich hoffe ihr könnt mir helfen

mfg

PS: was muss ich eig in die test.py als server und port rein?, ich hab jetzt localhost und port 80[/code]

Verfasst: Donnerstag 20. August 2009, 10:34
von Defnull
Ich geh mal davon aus das du Apache mit mod_wsgi benutzt? Dann brauchst du den run() befehl nicht, da das Apache für dich erledigt. Ersetze das "bottle.run('localhost', port=8080)" durch "application = bottle.default_app()".

Außerdem sollte deine script-datei auf .wsgi enden, nicht auf .py
Die htaccess sieht dann so aus:

Code: Alles auswählen

AddHandler wsgi-script .wsgi
 
RewriteBase /
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /test.wsgi/$1 [QSA,PT,L]

Verfasst: Donnerstag 20. August 2009, 10:36
von Dav1d
geht leider nicht :(

immer noch der 404

Verfasst: Donnerstag 20. August 2009, 11:54
von mkesper
Die Datei heißt .htaccess (mit führendem "Punkt") und ist auch für den Webserver lesbar?

Verfasst: Donnerstag 20. August 2009, 15:51
von noisefloor
Hallo,

wieso brauchst du eine .htaccess, damit das Skript läuft? Halt ich für falsch... bzw. unnötig kompliziert.

Jedenfalls funktioniert es bei mir auf Webserver rein 1A, wenn du den WSGI-Handler über die config-Datei des Apache einbindest. Ohne Rewrite-Rule getrickse...

Wie es "richtig" geht ist auch im "anderen Thread" zu Bottle erklärt.

Ansonste hier nochmal kurz posten, dann poste ich meine adapter.wsgi und Apache-Config.

Gruß, noisefloor

Verfasst: Donnerstag 20. August 2009, 16:25
von Hyperion
Nur mal so ganz trivial nachgefragt: Ist denn mod-wsgi überhaupt installiert auf dem Server? "Webspace" klingt irgend nach einem Standard-Webhoster Angebot, mit FTP-Zugang und x MySQL-Datenbanken... und da werden wohl die wenigsten mod-wsgi an Bord haben.

Verfasst: Freitag 21. August 2009, 08:12
von Dav1d
noisefloor hat geschrieben:Hallo,

wieso brauchst du eine .htaccess, damit das Skript läuft? Halt ich für falsch... bzw. unnötig kompliziert.

Jedenfalls funktioniert es bei mir auf Webserver rein 1A, wenn du den WSGI-Handler über die config-Datei des Apache einbindest. Ohne Rewrite-Rule getrickse...

Wie es "richtig" geht ist auch im "anderen Thread" zu Bottle erklärt.

Ansonste hier nochmal kurz posten, dann poste ich meine adapter.wsgi und Apache-Config.

Gruß, noisefloor
es isn free-webspace, da kann ich nix bei apache einbinden
Die Datei heißt .htaccess (mit führendem "Punkt") und ist auch für den Webserver lesbar?
ja ich weiß was eine .htaccess datei ist ja sie hat einen Punkt, ja sie ist lesbar

Angeblich ist mod_wsgi installiert.

Ist mod_wsgi eig nötig? oder reicht mod_fastcgi?[/quote]

Verfasst: Freitag 21. August 2009, 08:56
von Hyperion
Dav1d hat geschrieben: Angeblich ist mod_wsgi installiert.
Dann frag am besten beim Betreiber noch mal nach, damit Du das auch wirklich weißt. Sonst bastelt man nur stundnelnag herum für nix und wieder nix.
Ist mod_wsgi eig nötig? oder reicht mod_fastcgi?
Man kann (afaik) jede WSGI-Applikation auch über andere Schnittstellen zum Webserver nutzen, also auch insbesondere FastCGI. Ich hatte das mal über flup realisiert. Dazu gibts auch Tipps im wiki:

[wiki]FastCGI WSGI Wrapper[/wiki]

Verfasst: Freitag 21. August 2009, 09:11
von Defnull
FastCGI kann Bottle noch nicht von Haus aus, aber das ist auch kein großer Aufriss.

Code: Alles auswählen

from flup.server.fcgi import WSGIServer
from bottle import default_app
...
WSGIServer(default_app()).run()

Verfasst: Montag 7. September 2009, 11:01
von Dav1d
funktioniert auch nicht -.-, bekomme dauernd: 500 - INTERNAL SERVER ERROR - The request was not completed. The server met an unexpected condition:

hab bi apache als handler cgi-script die Endung .py hinzugefügt, hat mit bottle nicht funktioniert dann hab ich versucht es mit: http://webpython.codepoint.net/cgi_hello_world den beispieln kommt aber immer der 500

atm, ist das forum vom Hoster down, wenn es wieder on ist frag ich da nochmal


mfg

Verfasst: Montag 7. September 2009, 18:58
von jens
Dav1d hat geschrieben:bekomme dauernd: 500 - INTERNAL SERVER ERROR
Schau mal hier: [wiki]Web-Skripte zum Laufen bringen[/wiki]