python - Python Flask App 错误:'function' 对象没有使用 Flask-Dance 的属性'get'
问题描述
我正在使用 Flask-Dance 让用户使用谷歌登录。但是当我走到下面的路线时,它告诉我:'function'对象没有属性'get'。我做错了什么?
如果我写“如果不是 google.authorized”,它也会引发错误。
from flask_dance.contrib.google import make_google_blueprint, google
app.register_blueprint(google_blueprint, url_prefix='/login')
google_blueprint = make_google_blueprint(client_id='client_id', client_secret='client_secret')
@app.route('/google')
def google():
if not google_blueprint.authorized:
return redirect(url_for('google.login'))
account_info = google.get("/plus/v1/people/me")
assert account_info.ok, account_info.text
return "You are {email} on Google".format(email=resp.json()["emails"][0]["value"])
解决方案
您google
在第 1 行导入,但稍后在第 7 行定义了一个函数google
,该函数从导入中覆盖对象并基本上隐藏它,因此该行account_info = google.get("/plus/v1/people/me")
试图在您的函数上调用 get 而不是google
您导入的模块。
将您的函数重命名为其他名称,例如google_endpoint
,它将起作用。
推荐阅读
- java - 当使用条件格式时,Apache POI 为 cell.getCellStyle().getFillForegroundColorColor() 返回 null
- javascript - 在 render() 之前加载图像
- algorithm - 他们是如何找到以下代码的下界的?
- php - 通过 imap_search() 获取新邮件
- jquery - 在 Woocommerce 中悬停时翻转产品图像
- python - Python SDF 阅读器失败
- javascript - 将 cryto.generateKeyPair 与 jsonwebtoken 一起使用
- c# - 在没有视图的情况下执行 Web 控制器操作 [c#]
- python - 无法为 fasttext 加载输入数据
- ios - 为什么这是一个保留周期?