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)
Любая помощь по этому поводу приветствуется.Спасибо!
Убедитесь, что ваши вычисления обрабатываются внутри функции, иначе попробуйте передать этот аргумент в определенной функции.
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)
Вы должны определить функцию после декоратора маршрута, т.е. после @ app.route
Обновленный код
@app.route("/") def function_main(): #all logics here return render_template('index.html', pewds_sub = subsp, tseries_sub = subt)