Bottle starten???

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Antworten
Dav1d
User
Beiträge: 1437
Registriert: Donnerstag 30. Juli 2009, 12:03
Kontaktdaten:

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]
Benutzeravatar
Defnull
User
Beiträge: 778
Registriert: Donnerstag 18. Juni 2009, 22:09
Wohnort: Göttingen
Kontaktdaten:

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]
Bottle: Micro Web Framework + Development Blog
Dav1d
User
Beiträge: 1437
Registriert: Donnerstag 30. Juli 2009, 12:03
Kontaktdaten:

geht leider nicht :(

immer noch der 404
Benutzeravatar
mkesper
User
Beiträge: 919
Registriert: Montag 20. November 2006, 15:48
Wohnort: formerly known as mkallas
Kontaktdaten:

Die Datei heißt .htaccess (mit führendem "Punkt") und ist auch für den Webserver lesbar?
Benutzeravatar
noisefloor
User
Beiträge: 3854
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

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
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

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.
Dav1d
User
Beiträge: 1437
Registriert: Donnerstag 30. Juli 2009, 12:03
Kontaktdaten:

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]
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

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]
Benutzeravatar
Defnull
User
Beiträge: 778
Registriert: Donnerstag 18. Juni 2009, 22:09
Wohnort: Göttingen
Kontaktdaten:

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()
Bottle: Micro Web Framework + Development Blog
Dav1d
User
Beiträge: 1437
Registriert: Donnerstag 30. Juli 2009, 12:03
Kontaktdaten:

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

Dav1d hat geschrieben:bekomme dauernd: 500 - INTERNAL SERVER ERROR
Schau mal hier: [wiki]Web-Skripte zum Laufen bringen[/wiki]

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