使用Flask访问Google的API

时间:2016-10-24 13:04:28

标签: python

我正在尝试创建一个与Google的API对话的Flask应用。但是,我一直收到这个错误:

Traceback (most recent call last):
  File "hello.py", line 16, in <module>
    @app.route('google_api')
  File "/Library/Python/2.7/site-packages/flask/app.py", line 1013, in decorator
    self.add_url_rule(rule, endpoint, f, **options)
  File "/Library/Python/2.7/site-packages/flask/app.py", line 62, in wrapper_func
    return f(self, *args, **kwargs)
  File "/Library/Python/2.7/site-packages/flask/app.py", line 976, in add_url_rule
    rule = self.url_rule_class(rule, methods=methods, **options)
  File "/Library/Python/2.7/site-packages/werkzeug/routing.py", line 599, in __init__
    raise ValueError('urls must start with a leading slash')
ValueError: urls must start with a leading slash

我浏览了Flask教程和#34;使用OAuth 2.0 for Web Services&#34;在谷歌的网站上。我不太确定我做错了什么,而且我不太清楚错误告诉我的是什么。看起来它与Flask有关?这是我的代码:

from flask import Flask
from oauth2client import client

app = Flask(__name__)

@app.route("/")
def hello():
    return "Hello world!"

@app.route('google_api')
def google_api():
    flow = client.flow_from_clientsecrets(
        'client_secrets.json',
        scope='https://www.googleapis.com/auth/prediction',
        redirect_uri='http://127.0.0.1:5000/redirect')

@app.route('/redirect')
def redir():
    return "Authenticated"


if __name__ == '__main__':
    app.debug = True
    app.run(threaded=True)

我做错了什么?我该如何解决?

2 个答案:

答案 0 :(得分:3)

我认为你错过了google api路线的主要斜线。

@app.route('google_api')

您是否尝试过更新

@app.route('/google_api')

希望有所帮助

答案 1 :(得分:0)

以下是您获得的错误的导入部分。

 File "hello.py", line 16, in <module>
    @app.route('google_api')
...
ValueError: urls must start with a leading slash

尝试:

    @app.route('/google_api')

请注意google_api

之前的正斜杠