Python выдает «синтаксическую ошибку» при использовании @ app.route - PullRequest
0 голосов
/ 24 ноября 2018

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)

Любая помощь по этому поводу приветствуется.Спасибо!

Ответы [ 2 ]

0 голосов
/ 24 ноября 2018

Убедитесь, что ваши вычисления обрабатываются внутри функции, иначе попробуйте передать этот аргумент в определенной функции.

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)
0 голосов
/ 24 ноября 2018

Вы должны определить функцию после декоратора маршрута, т.е. после @ app.route

Обновленный код

@app.route("/")
def function_main():
    #all logics here
    return render_template('index.html', pewds_sub = subsp, tseries_sub = subt)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...