【问题标题】:Python is throwing "syntax error" while using @app.routePython 在使用 @app.route 时抛出“语法错误”
【发布时间】:2018-11-24 05:23:02
【问题描述】:

当我编译下面的代码时,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)

对此的任何帮助表示赞赏。 谢谢!

【问题讨论】:

    标签: python-3.x flask


    【解决方案1】:

    你必须在路由装饰器之后定义函数,即在@app.route之后

    更新代码

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

    【讨论】:

      【解决方案2】:

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

      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)
      

      【讨论】:

        【解决方案3】:

        就我而言,

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

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

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

        正常情况下,这应该可以很好地工作 此语句中的语法错误通常表明您可能在这一行之上而不是在那一行有问题。

        【讨论】:

          猜你喜欢
          • 2020-12-09
          • 2015-04-28
          • 1970-01-01
          • 2016-10-31
          • 2023-03-20
          • 2019-11-02
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多