Python 烧瓶-避免控制器中有代码
我正在学习Flask,我看到的所有路由器示例如下所示:Python 烧瓶-避免控制器中有代码,python,flask,Python,Flask,我正在学习Flask,我看到的所有路由器示例如下所示: @app.route('/') def hello(): name = request.args.get("name", "World") return f'Hello, {escape(name)}!' 我的控制器中不需要任何代码,除了: @app.route('/') def hello(): mycode.doHelloWorld() return mycode.sayHelloWorld() 我喜
@app.route('/')
def hello():
name = request.args.get("name", "World")
return f'Hello, {escape(name)}!'
我的控制器中不需要任何代码,除了:
@app.route('/')
def hello():
mycode.doHelloWorld()
return mycode.sayHelloWorld()
我喜欢我的代码是可重用和可测试的,如果它在Flask控制器中,则两者都不是。
有人能给我举个例子,说明如何使用Flask将业务逻辑/代码与控制器分开吗?您可以尝试定义一个函数,在给定请求参数的情况下返回类似的输出,如下所示:
def sayHelloWorld(request):
name = request.args.get("name", "World")
return f"Hello, {name}!"
@app.route("/")
def hello():
return sayHelloWorld(request)
或者根据您提供的代码,您可以创建一个类,其中包含作为静态函数的可重用代码段
class ReusableCode:
@staticmethod
def sayHelloWorld(request):
name = request.args.get("name", "World")
return f"Hello, {name}!"
@app.route("/"):
def hello():
return ReusableCode.sayHelloWorld(request)
我可以将代码放在一个单独的文件/文件夹中,并将其与init.py一起导入到同一个文件夹中,对吗?