Python 烧瓶-避免控制器中有代码

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() 我喜

我正在学习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()
我喜欢我的代码是可重用和可测试的,如果它在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一起导入到同一个文件夹中,对吗?