溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

怎么在flask框架中自定義過濾器

發(fā)布時間:2021-04-14 16:20:53 來源:億速云 閱讀:110 作者:Leah 欄目:開發(fā)技術(shù)

這篇文章將為大家詳細講解有關(guān)怎么在flask框架中自定義過濾器,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關(guān)知識有一定的了解。

一. 自定義一個mardown過濾器

自定義一個markdown過濾器, 使過濾器可以像safe解析html標簽一樣解析md語法.

  • 安裝庫

pip install Markdown==2.3.1
  • 自定義過濾器

使用@app.template_filter(‘md')過濾器, 此時便擁有了名為md的過濾器.

@app.template_filter('md')
def markdown_to_html(txt):
  from markdown import markdown
  return markdown(txt)
  • 使用示例

views

@app.route('/', methods=['POST', 'GET'])
def index():
  return render_template('index.html', body='# hello')
  • 模板中直接使用

{{ body|md|safe }}

二. 添加讀取文件的功能

讀取md文件, 并輸出到html中

  • 定義讀文件函數(shù)

def read_md(filename):
  with open(filename) as md_file:
    content = reduce(lambda x, y: x+y, md_file.readline())
  return content.decode('utf-8')
  • 上下文管理器

此時read_md函數(shù)可以全局使用

@app.context_processor
def inject_methods():
  return dict(read_md=read_md)
  • 可以在模板中調(diào)用函數(shù)

{{ read_md('test.md')|md|safe}}

關(guān)于怎么在flask框架中自定義過濾器就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI