Home > Django, Python > Django Signals – Stundenlange Suche

Django Signals – Stundenlange Suche

Ich habe seit einiger Zeit die Signals von Django im Auge und wollte diese immer schonmal ausprobieren. Einfach aus Neugierde an der Sache. Aktuell habe ich ein Projekt wo man dies gut verwenden könnte.

Nachdem die Docu von Django über Signals nicht wirklich hilfreich war und andere Docs und Blogs im Web veraltet waren, hat mich das Wiki ein wenig verwirrt. Aber anhand des Wikis konnte man erahnen wie die Programmierer von Django es sich gedacht haben.

from django import dispatch

mail_senden = dispatch.Signal()

def send_mail(sender, user, adress, signal, *args, **kwargs):
    print "signal!!!"

mail_senden.connect(send_mail)

def test():
    mail_senden.send(sender=None, user="user", adress="mail@host.tld")

Ich denke der Quellcode ist recht selbstverständlich. “mail_senden” wird zum Signal. Dann wird send_mail definiert, welche aufgerufen wird, sobald ein Signal eingeht. dann wird das Signal an die Funktion gebunden (connect). In der Funktion test wird dann testweise einfach mal etwas über das Signal gesendet.

Zusammengesucht habe ich diese Infos unter den Webseiten:
mercurytide
b-list.org
Django Wiki
chrisdpratt.com

  1. Bisher keine Kommentare
  1. Bisher keine Trackbacks