我写了一个小的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"