Flask:正确使用路由和函数的方式



我写了一个小的flask服务器。然而,其中一个路由变得越来越大,所以我想到创建一个外部.py文件,其中包含函数中的所有逻辑,当路由被执行时,它只是调用另一个python文件中的函数。

但是,我还必须从表单中获取参数。所以我的新路线是:

@app.route('/convert', methods=['POST'])
conversion_item = request.form.get('item')
conversion_method = request.form.get('method')
#HERE CALL THE FUNCTION
convertMy(conversion_item, conversion_method)
return redirect(url_for('index'))

然而,当我执行这个,我得到:

File "server.py", line 24
conversion_item = request.form.get('item')
^
SyntaxError: invalid syntax

我必须把所有的路由在一个函数内吗?然后在这条路线下有一个函数,它会调用另一个函数?我觉得很奇怪。

我怎样才能"粘上"?这个吗?

@app.route中的@代表一个函数decorator,它必须修饰一个函数。一个函数调用另一个函数是非常正常的。

@app.route('/convert', methods=['POST'])
def convert():
conversion_item = request.form.get('item')
conversion_method = request.form.get('method')
#HERE CALL THE FUNCTION
convertMy(conversion_item, conversion_method)
return redirect(url_for('index'))

当然,您可以从另一个文件导入函数并在视图函数中调用它。

您提供的错误消息与导入无关。

在Python中你需要缩进代码块。

你写了一个像这样的函数…

def function():
return "something"

但是你需要像这样缩进函数体…

def function():
return "something"

所以它看起来像这样…

from somewhere import large_function

def function():
large_funtion()
return "something"

最新更新