我使用Python开发了一个论坛项目,其中发布帖子使用的是editor.md编译器
我使用的是Python的Flask框架做的。其中保存上面HTML的代码:
```
class PostsModel(db.Model): __tablename__ = 'front_posts' id = db.Column(db.Integer, primary_key=True, autoincrement=True) title = db.Column(db.String(100), nullable=False) content = db.Column(db.Text, nullable=False) # 保存HTNL content_html = db.Column(db.Text) # 访问量 read_count = db.Column(db.Integer, default=0) like_count = db.Column(db.Integer, default=0) create_time = db.Column(db.DateTime, default=datetime.now) # 属于哪个模块 board_id = db.Column(db.Integer, db.ForeignKey("cms_board.id")) # 属于哪个前台用户 author_id = db.Column(db.String(100), db.ForeignKey("front_user.id")) board = db.relationship("BoardModel", backref="posts") author = db.relationship("FrontUser", backref="posts") is_delete = db.Column(db.Integer, default=0) # 因为前端那边保存上来的是一个TTXT文本,不是HTML格式。下面这个方法是对保存上来的文本进行HTML格式处理,保存成markdown格式 @staticmethod def on_changed_content(target, value, oldvalue, initiator): allowed_tags = ['a', 'abbr', 'acronym', 'b', 'blockquote', 'code', 'em', 'i', 'li', 'ol', 'pre', 'strong', 'ul', 'h1', 'h2', 'h3', 'p', 'img', 'video', 'div', 'iframe', 'p', 'br', 'span', 'hr', 'src', 'class' 'span', 'pre'] allowed_attrs = {'*': ['class'], 'a': ['href', 'rel'], 'img': ['src', 'alt'], 'spna': ['class'], 'ol': ['class'], 'li': ['class'], 'pre': ['class'], 'div': ['class'] } target.content_html = bleach.linkify(bleach.clean( markdown(value, output_format='html'), tags=allowed_tags, strip=True, attributes=allowed_attrs)) print('target.content_html:', target.content_html) # 这个其实算是调用上面的on_changed_content db.event.listen(PostsModel.content, 'set', PostsModel.on_changed_content)
```
感觉没错。可是保存到数据库里面的,是这样子:
前端显示的是这样子:
为啥没有显示这样子:
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632
你前端代码转义了,如果前端是用模版语法生成的,你可以设置转义问题