Seite 1 von 1

bottle - Benutzernachricht nach Redirect...

Verfasst: Sonntag 20. Juli 2014, 10:52
von jens
Ich überlege bottle in DragonPy für den CPU control server zu nutzten.

Gib es in Bottle sowas wie das "messages framework" in Django, also sowas:

Code: Alles auswählen

messages.error(request, 'Error: Foo Bar!')
return HttpResponseRedirect("/foo/")

Re: bottle - Benutzernachricht nach Redirect...

Verfasst: Sonntag 20. Juli 2014, 14:01
von BlackJack
@jens: Wenn man sich so etwas programmiert, dann ja. Es gibt einen Grund warum diese kleinen Rahmenwerke „Mikrorahmenwerke” heissen. ;-)

Re: bottle - Benutzernachricht nach Redirect...

Verfasst: Sonntag 20. Juli 2014, 17:40
von jens
Also ich würde das noch so als Grundausstattung ansehen.

Als Plugin scheint es so was auch nicht zu geben: http://bottlepy.org/docs/dev/plugins/

Re: bottle - Benutzernachricht nach Redirect...

Verfasst: Sonntag 20. Juli 2014, 18:11
von BlackJack
@jens: Im Käseladen findet sich das hier: https://pypi.python.org/pypi/bottle-flash/0.1

Keine Ahnung ob's brauchbar ist.

Re: bottle - Benutzernachricht nach Redirect...

Verfasst: Sonntag 20. Juli 2014, 18:29
von Balmung
Dem bottle-flash plugin bin ich auch schon über den Weg gestolpert, den dazugehörigen github account kann ich nicht finden.
Etwas zu nutzen, was also scheinbar nicht mehr weiterentwickelt wird ist womöglich nicht so eine tolle Sache… :/

Re: bottle - Benutzernachricht nach Redirect...

Verfasst: Sonntag 20. Juli 2014, 18:56
von BlackJack
@Balmung: Naja, wenn man sich mal die Grösse des Archivs anschaut, habe ich so eine Vermutung warum's das nicht fertig gibt: Das schreibt sich jeder der's braucht schneller mit ein paar Zeilen selber als das man brauchen würde danach im Netz zu suchen.

Das hier ist der Quelltext von dem Ding:

Code: Alles auswählen

from functools import wraps
from bottle import request, response

class FlashPlugin(object):
    name = 'flash'

    def __init__(self, key='flash', secret=None):
        self.key = key
        self.secret = secret
        self.app = None

    def setup(self, app):
        self.app = app
        self.app.hooks.add('before_request', self.load_flashed)
        self.app.hooks.add('after_request', self.set_flashed)
        self.app.flash = self.flash
        self.app.get_flashed_messages = self.get_flashed_messages

    def load_flashed(self):
        m = request.get_cookie(self.key, self.secret)
        if m is not None:
            response.flash_messages = m

    def set_flashed(self):
        if hasattr(response, 'flash_messages'):
            response.set_cookie(self.key, response.flash_messages, self.secret)
            delattr(response, 'flash_messages')

    def flash(self, message, level=None):
        if not hasattr(response, 'flash_messages'):
            response.flash_messages = []
        response.flash_messages.append((message, level))

    def get_flashed_messages(self):
        if hasattr(response, 'flash_messages'):
            m = response.flash_messages
            delattr(response, 'flash_messages')
            response.delete_cookie(self.key)
            return m
            
    def apply(self, callback, context):
        return callback

Re: bottle - Benutzernachricht nach Redirect...

Verfasst: Montag 21. Juli 2014, 06:56
von jens
Das ist doch schon mal was... Danke !