Heim > Datenbank > MySQL-Tutorial > Hauptteil

mongoengine教程(5)信号

WBOY
Freigeben: 2016-06-07 16:34:16
Original
1164 Leute haben es durchsucht

MongoEngine在进行数据操作时会发出一些信号,我们可以连接这些信号进行一些额外的操作。注意:要在MongoEngine中使用信号,需要安装 blinker 这个库。 $ pip install blinker MongoEngine提供的信号如下: pre_init: 在创建一个新的 Document 或者 Embedded

MongoEngine在进行数据操作时会发出一些信号,我们可以连接这些信号进行一些额外的操作。注意:要在MongoEngine中使用信号,需要安装 blinker 这个库。

$ pip install blinker
Nach dem Login kopieren

MongoEngine提供的信号如下:

  • pre_init: 在创建一个新的 Document 或者 EmbeddedDocument 实例对象之后,并且对象初始化之前调用。
  • post_init:在 Document 或者 EmbeddedDocument 实例对象初始化完成之后调用。
  • pre_save:在 save 方法执行之前调用。
  • pre_save_post_validation:在数据检验完成之后,数据保存之前调用。
  • post_save:在数据保存完成之后调用。
  • pre_delete:在 delete 方法执行之前调用。
  • post_delete:在记录成功删除之后调用。
  • pre_bulk_insert:在数据检验之后,数据插入之前调用。
  • post_bulk_insert:在数据成功插入之后调用。

事件连接

使用 signals 将信号与回调函数进行连接。

from mongoengine import *
from mongoengine import signals
class Author(Document):
    name = StringField()
    @classmethod
    def pre_save(cls, sender, document, **kwargs):
        print("Pre Save: %s" % document.name)
    @classmethod
    def post_save(cls, sender, document, **kwargs):
        print("Post Save: %s" % document.name)
        if 'created' in kwargs:
            if kwargs['created']:
                print("Created")
            else:
                print("Updated")
signals.pre_save.connect(Author.pre_save, sender=Author)
signals.post_save.connect(Author.post_save, sender=Author)
Nach dem Login kopieren

注意:对于 RefereneField 的reverse_delete_rules参数不会触发信号。

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!