flask框架自定义过滤器示例【markdown文件读取和展示功能】

本文实例讲述了flask框架自定义过滤器。分享给大家供大家参考,具体如下:

除了一些内置的join length safe等过滤器外, flask还提供了自定义过滤器的功能.

一. 自定义一个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中

  • 定义读文件函数
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函数可以全局使用

@app.context_processor
def inject_methods():
  return dict(read_md=read_md)
  • 可以在模板中调用函数
{{ read_md('test.md')|md|safe}}

希望本文所述对大家基于flask框架的Python程序设计有所帮助。

(0)

相关推荐

  • Flask核心机制之上下文源码剖析

    一.前言 了解过flask的python开发者想必都知道flask中核心机制莫过于上下文管理,当然学习flask如果不了解其中的处理流程,可能在很多问题上不能得到解决,当然我在写本篇文章之前也看到了很多博文有关于对flask上下文管理的剖析都非常到位,当然为了学习flask我也把对flask上下文理解写下来供自己参考,也希望对其他人有所帮助. 二.知识储备 threadlocal 在多线程中,线程间的数据是共享的, 但是每个线程想要有自己的数据该怎么实现? python中的threading.l

  • flask 实现token机制的示例代码

    token 的生成 用token校验身份,是前后端交互的常用方式. 它有以下特性: 会失效 加密 可以根据它拿到用户的信息 生成方式( 内部配置的私钥+有效期+用户的id ) #导入依赖包 from flask import request,jsonify,current_app from itsdangerous import TimedJSONWebSignatureSerializer as Serializer def create_token(api_user): ''' 生成toke

  • Flask框架请求钩子与request请求对象用法实例分析

    本文实例讲述了Flask框架请求钩子与request请求对象.分享给大家供大家参考,具体如下: 请求钩子 在客户端和服务器交互的过程中,有些准备工作或扫尾工作需要处理,比如: 在请求开始时,建立数据库连接 在请求开始时,根据需求进行权限校验 在请求结束时,指定数据的交互格式 为了让每个视图函数避免编写重复功能的代码,Flask提供了通用设施的功能,即请求钩子. 请求钩子是通过装饰器的形式实现,Flask支持如下四种请求钩子: 请求钩子 描述 before_first_request 在处理第一个

  • Flask之请求钩子的实现

    请求钩子 通过装饰器为一个模块添加请求钩子, 对当前模块的请求进行额外的处理. 比如权限验证. 说白了,就是在执行视图函数前后你可以进行一些处理,Flask使用装饰器为我们提供了注册通用函数的功能. 1.before_first_request:在处理第一个请求前执行 before_first_request 在对应用程序实例的第一个请求之前注册要运行的函数, 只会执行一次 #: A lists of functions that should be called at the beginnin

  • flask中过滤器的使用详解

    过滤器 过滤器的本质就是函数.有时候我们不仅仅只是需要输出变量的值,我们还需要修改变量的显示,甚至格式化.运算等等,而在模板中是不能直接调用 Python 中的某些方法,那么这就用到了过滤器. 使用方式: 过滤器的使用方式为:变量名 | 过滤器. {{variable | filter_name(*args)}} 如果没有任何参数传给过滤器,则可以把括号省略掉, flask中过滤器支持链式调用 {{variable | filter_name}} 常见内建过滤器 字符串操作 safe:禁用转义 

  • python框架flask表单实现详解

    这篇文章主要介绍了python框架flask表单实现详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 表单 表单用于注册,修改用户数据等场景. flask-wtf提供了一个包,可以创建表单:pip install flask-wtf 为了防止跨域请求,flask_wtf自己生成一个秘钥,用秘钥生成加密口令,然后用口令验证表单中的数据真伪(是否被篡改过) from flask import Flask from flask import req

  • Flask框架中request、请求钩子、上下文用法分析

    本文实例讲述了Flask框架中request.请求钩子.上下文用法.分享给大家供大家参考,具体如下: request 就是flask中代表当前请求的request对象: 常用的属性如下: 属性 说明 类型 data 记录请求的数据,并转换为字符串 * form 记录请求中的表单数据 MultiDict args 记录请求中的查询参数 MultiDict cookies 记录请求中的cookie信息 Dict headers 记录请求中的报文头 EnvironHeaders method 记录请求

  • Flask框架钩子函数功能与用法分析

    本文实例讲述了Flask框架钩子函数功能与用法.分享给大家供大家参考,具体如下: 在Flask中钩子函数是使用特定的装饰器的函数.为什么叫做钩子函数呢,是因为钩子函数可以在正常执行的代码中,插入一段自己想要执行的代码,那么这种函数就叫做钩子函数. before_first_request:Flask项目第一次部署后会执行的钩子函数. before_request:请求已经到达了Flask,但是还没有进入到具体的视图函数之前调用.一般这个就是在函数之前,我们可以把一些后面需要用到的数据先处理好,方

  • Flask框架路由和视图用法实例分析

    本文实例讲述了Flask框架路由和视图用法.分享给大家供大家参考,具体如下: 创建一个简单flask框架程序 #1.导入Flask类 from flask import Flask #2.创建Flask对象接收一个参数__name__,它会指向程序所在的包 app = Flask(__name__) #3.装饰器的作用是将路由映射到视图函数index @app.route('/') def index(): return 'Hello World' #4.Flask应用程序实例的run方法,启动

  • flask框架自定义过滤器示例【markdown文件读取和展示功能】

    本文实例讲述了flask框架自定义过滤器.分享给大家供大家参考,具体如下: 除了一些内置的join length safe等过滤器外, flask还提供了自定义过滤器的功能. 一. 自定义一个mardown过滤器 自定义一个markdown过滤器, 使过滤器可以像safe解析html标签一样解析md语法. 安装库 pip install Markdown==2.3.1 自定义过滤器 使用@app.template_filter('md')过滤器, 此时便拥有了名为md的过滤器. @app.tem

  • flask框架自定义url转换器操作详解

    本文实例讲述了flask框架自定义url转换器.分享给大家供大家参考,具体如下: 什么是url转换器 可以指定url的规制,对url做一定的限制. 自带的url转换器 可以参考我的上一篇博客: flask–url与重定向详解 自定义url转换器 首先我们提一个需求,根据需求来写代码,现在我们假设一个url需要满足电话号码的格式才能访问我们的函数视图,例如这样的url: 127.0.0.1:5000/user/<电话号码>/. # 首先导入BaseConverter from werkzeug.

  • PHP实现类似于C语言的文件读取及解析功能

    本文实例讲述了PHP实现类似于C语言的文件读取及解析功能.分享给大家供大家参考,具体如下: $log_file_name = 'D:/static/develop/kuai_zhi/acagrid.com/public/Logs/'.date('Ym').'/'.date('d').'_error.log'; //$log_file_name = 'D:/static/develop/kuai_zhi/acagrid.com/public/Logs/201701/19_error.log'; i

  • Python3 tkinter 实现文件读取及保存功能

    tkinter介绍 tkinter是python自带的GUI库,是对图形库TK的封装 tkinter是一个跨平台的GUI库,开发的程序可以在win,linux或者mac下运行 # !/user/bin/env Python3 # -*- coding:utf-8 -*- """ file:window.py.py create time:2019/6/27 14:54 author:Loong Xu desc: 窗口 """ import tki

  • Python的Flask框架及Nginx实现静态文件访问限制功能

    Nginx配置 Ngnix,一个高性能的web服务器,毫无疑问它是当下的宠儿.卓越的性能,灵活可扩展,在服务器领域里攻城拔寨,征战天下. 静态文件对于大多数website是不可或缺的一部分.使用Nginx来处理静态文件也是常见的方式.然而,一些静态文件,我们并不像任何情况下都公开给任何用户.例如一些提供给用户下载的文件,一些用户上传的涉及用户隐私的图片等.我们我希望用户登录的情况下可以访问,未登录的用户则不可见. 粗略的处理,在后端程序可以做过滤,渲染页面的时候,在视图逻辑里面验证用户登录,然后

  • Flask框架中密码的加盐哈希加密和验证功能的用法详解

    密码加密简介 密码存储的主要形式: 明文存储:肉眼就可以识别,没有任何安全性. 加密存储:通过一定的变换形式,使得密码原文不易被识别. 密码加密的几类方式: 明文转码加密:BASE64, 7BIT等,这种方式只是个障眼法,不是真正的加密. 对称算法加密:DES, RSA等. 签名算法加密:也可以理解为单向哈希加密,比如MD5, SHA1等.加密算法固定,容 易被暴力破解.如果密码相同,得到的哈希值是一样的. 加盐哈希加密:加密时混入一段"随机"字符串(盐值)再进行哈希加密.即使密码相同

  • Django自定义过滤器定义与用法示例

    本文实例讲述了Django自定义过滤器定义与用法.分享给大家供大家参考,具体如下: 一.自定义过滤器的介绍 前面我们就介绍过过滤器其实就是一个函数,把要过来的字段传递到一个函数内,进行加工处理,返回一个新的值展现在页面中,在实际开发中系统自带的过滤器有时候不能满足我们的需求的时候就要自定义 二.Django中自定义过滤器有两种方式 1.在组件(App)中的templatetags创建一个单独的py文件 2.单独创建一个组件(App)用来存放项目中所有的自定义过滤器 三.在项目中的组件中创建自定义

  • Python Django模板之模板过滤器与自定义模板过滤器示例

    本文实例讲述了Python Django模板之模板过滤器与自定义模板过滤器.分享给大家供大家参考,具体如下: 模板过滤器 过滤器用于对模板变量进行操作. date:改变日期的显示格式. length:求长度.字符串,列表. default:设置模板变量的默认值. 格式:模板变量|过滤器:参数 自定义过滤器. 自定义的过滤器函数,至少有一个参数,最多两个 例如: {{ book.btitle|length }} # 返回字符串或列表的长度 {{ book.bpub_date|date:'Y年-m月

  • Python基于Flask框架配置依赖包信息的项目迁移部署

    一般在本机上完成基于Flask框架的代码编写后,如果有接口或者数据操作方面需求需要把代码部署到指定服务器上. 一般情况下,使用Flask框架开发者大多数都是选择Python虚拟环境来运行项目,不同的虚拟环境中配置依赖包信息不同.如果重新迁移到一个新的虚拟环境后,又重新来一个一个的配置依赖包,那将会很浪费时间. 下面介绍一个简单易用的技巧,也是我自己在书本上看到的,以防每次配置需要翻阅书籍的麻烦,所以单自写一篇文章作记录,方便自己以后查看,也希望给其他学习的同学有点帮助. 完成项目相关代码编写后,

  • Django零基础入门之自定义过滤器及模板中的使用

    目录 引言 自定义过滤器 (1)首先 (2)内置过滤器lower的使用: (3)自定义过滤器的使用: (4)模板中使用自定义过滤器: (5)效果展示: 引言 分析Django内置的模板过滤器: 通过分析可以将内置的过滤器理解为: 一个带有一个或两个参数的python函数: (输入的)变量的值[注意:不一定是字符串形式,在前面也讲过可以是哪些类型.] 参数的值--可以有一个初始值,或者完全没有参数.   自定义过滤器 新建一个名为ceshi的app以供本文学习使用: 自定义过滤器及标签所在的tem

随机推荐