python - flask的model模块里, 静态方法的参数是如何确定的?
巴扎黑
巴扎黑 2017-04-18 09:49:03
[Python讨论组]

Flask Web一书中为管理评论在models.py里创建一个comment模型,代码如下:

class Comment(db.Model):
    __tablename__ = 'comments'
    id = db.Column(db.Integer, primary_key=True)
    body = db.Column(db.Text)
    body_html = db.Column(db.Text)
    timestamp = db.Column(db.DateTime, index=True, default=datetime.utcnow)
    disabled = db.Column(db.Boolean)
    author_id = db.Column(db.Integer, db.ForeignKey('users.id'))
    post_id = db.Column(db.Integer, db.ForeignKey('posts.id'))

    @staticmethod
    def on_changed_body(target, value, oldvalue, initiator):
        allowed_tags = ['a','abbr','acronym','b','code','em','i','strong']
        target.body_html = bleach.linkify(
            bleach.clean(markdown(value, output_format='html'), tags=allowed_tags, strip=True))

db.event.listen(Comment.body, 'set', Comment.on_changed_body)

代码的意思我能明白, 但我很好奇, 当系统发生'set'事件,自动调用静态方法on_changed_body时,系统怎么会知道,应该传送几个参数以及参数分别是什么?
也可以理解为: 静态方法里面那四个参数为什么是那四个,其顺序为什么是这样, 在什么地方有规定吗?

巴扎黑
巴扎黑

全部回复(1)
阿神

http://docs.sqlalchemy.org/en...
像这种不是自己实现的功能,马上反应找文档看就行了。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号