Python在使用@ app.route时抛出“语法错误”

时间:2018-11-24 05:23:02

标签: python-3.x flask

当我编译下面的代码时,Python抛出“语法错误”。

File "app.py", line 11
    @app.route('/')
    ^
SyntaxError: invalid syntax

我不确定这是什么意思。

from flask import Flask, render_template
import urllib.request
import json
import time

app = Flask(__name__ ,template_folder='template')
namep = "PewDiePie"
namet = "TSeries"
key = "MY_API_KEY"

@app.route("/")

for x in range(5):
 time.sleep(2)
 datat = urllib.request.urlopen("https://www.googleapis.com/youtube/v3/channels?part=statistics&forUsername="+namep+"&key="+key).read()
 datap = urllib.request.urlopen("https://www.googleapis.com/youtube/v3/channels?part=statistics&forUsername="+namet+"&key="+key).read()
 subt = json.loads(datat)["items"][0]["statistics"]["subscriberCount"]
 subsp = json.loads(datap)["items"][0]["statistics"]["subscriberCount"]
 def main():
    return render_template('index.html', pewds_sub = subsp, tseries_sub = subt)

if __name__ == "__main__":
    app.run(debug=True, host="0.0.0.0", port=80)

对此有任何帮助,我们深表感谢。 谢谢!

3 个答案:

答案 0 :(得分:0)

您必须在路由装饰器之后(即@ app.route之后)定义函数

更新的代码

@app.route("/")
def function_main():
    #all logics here
    return render_template('index.html', pewds_sub = subsp, tseries_sub = subt)

答案 1 :(得分:0)

确保在函数中处理您的计算,否则尝试在定义的函数中传递这些参数。

from flask import Flask, render_template
import urllib.request
import json
import time

app = Flask(__name__ ,template_folder='template')
namep = "PewDiePie"
namet = "TSeries"
key = "MY_API_KEY"

@app.route("/")
 def main():
    for x in range(5):
        time.sleep(2)
        datat = urllib.request.urlopen("https://www.googleapis.com/youtube/v3/channels?part=statistics&forUsername="+namep+"&key="+key).read()
        datap = urllib.request.urlopen("https://www.googleapis.com/youtube/v3/channels?part=statistics&forUsername="+namet+"&key="+key).read()
        subt = json.loads(datat)["items"][0]["statistics"]["subscriberCount"]
        subsp = json.loads(datap)["items"][0]["statistics"]["subscriberCount"]
    return render_template('index.html', pewds_sub = subsp, tseries_sub = subt)

if __name__ == "__main__":
    app.run(debug=True, host="0.0.0.0", port=80)

答案 2 :(得分:0)

就我而言,

我在上面为数据库连接启动了一个try块并且忘记放置catch块,这就是我遇到此错误的原因。

所以我建议任何面临同样错误的人,

应该检查上面的代码 @app.route('/') 因为如果你有 import flask

正确地,这应该可以正常工作,此语句中的语法错误通常表明您可能在此行上方而不是在该行处有问题。