为了账号安全,请及时绑定邮箱和手机立即绑定

Flask web开发中的关于在服务器上处理富文本的问题

Flask web开发中的关于在服务器上处理富文本的问题

紫衣仙女 2019-02-23 22:06:08
在11.4.2这章中,有提到在服务器上处理富文本,在模型中定义了函数将Markdown格式转换为HTML格式:class Post(db.Model): __tablename__='posts' id=db.Column(db.Integer,primary_key=True) body=db.Column(db.Text) timestamp=db.Column(db.DateTime,index=True,default=datetime.utcnow) author_id = db.Column(db.Integer,db.ForeignKey('users.id')) body_html = db.Column(db.Text) @staticmethod def on_changed_body(target,value,oldvalue,initiator): allowed_tags = ['a','abbr','acronym','b','blockquote','code','em','i','li','ol','pre','strong','ul','h1','h2','h3','p'] target.body_html=bleach.linkify(bleach.clean(markdown(value,output_format='html'),tags=allowed_tags,strip=True)) db.event.listen(Post.body,'set',Post.on_changed_body)文章中说将on_changed_body函数注册在body字段上,当类实例的body字段设置了新值后就会自动调用类实例的on_changed_body方法。不是很明白:在定义的时候,on_changed_body方法不是设置了四个参数么?def on_changed_body(target,value,oldvalue,initiator)。没有传入这四个参数也能调用吗?而且这四个参数中的value,oldvalue,initiator是什么作用?
查看完整描述

1 回答

?
慕容3067478

TA贡献1773条经验 获得超3个赞

你用的flask的什么extension? 这四个参数你不用关心怎么传入,你只需要理解这几个参数什么意思,然后重写on_changed_body这个方法。

查看完整回答
反对 回复 2019-03-04
  • 1 回答
  • 0 关注
  • 364 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信