在类中封装Flaskapi以用于测试

2024-09-28 13:23:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我过去曾经构建过FlaskAPI,但我从来没有在一个允许我在开发测试驱动开发的项目上享受过这样的奢侈。现在我是。在

我所读过的每一个how-to都显示flaskapi是以绝对非面向对象的风格定义的。这使得编写单元测试非常困难,因为不能将可选或特定于测试的参数传递到实例化的api中。在

例如,这个博客解释了一种为flask api创建单元测试的方法: http://mkelsey.com/2013/05/15/test-driven-development-of-a-flask-api/

blog在测试模式下设置一个环境变量,脚本监视该变量,并在发现该变量时改变其行为。我觉得这很不明智。让源代码流进操作系统环境是个坏主意的原因有很多。我非常相信封装功能,以便最大限度地提高可移植性,并明确区分模块的开始和结束位置。在

为了满足我的编码理念,有人可能会建议我把FlaskAPI封装在一个类中。然而,我不清楚一个人怎么会这样做。例如,Flask使用decorators来定义路由:

@app.route()

这怎么能融入课堂呢?在

我将非常感谢任何以面向对象的方式开发FlaskAPI的人的指导。在


Tags: to项目实例方法apihttpflask定义
1条回答
网友
1楼 · 发布于 2024-09-28 13:23:32

您可以将@app.route替换为add_url_rule。在

举个例子:

from flask import Flask

class MyFlaskApp:

    def __init__(self):
        self.app = Flask(__name__)
        self.app.add_url_rule('/', 'index', self.index)

    def index(self):
        pass

类似于:

^{pr2}$

相关问题 更多 >

    热门问题