让烧瓶重新开始工作

时间:2017-03-04 14:13:44

标签: python recaptcha

让烧瓶重新开始工作我遇到了很多麻烦。我基本上遵循这里的教程(https://github.com/mardix/flask-recaptcha),但它不起作用。这是我的设置。

__iniy__.py我做

from flask import Flask
from flask.ext.sqlalchemy import SQLAlchemy
from flask_mail import Message, Mail
from flask.ext.elasticsearch import FlaskElasticsearch
from flask_recaptcha import ReCaptcha

app = Flask(__name__)
app.config.from_pyfile('../config.py')
db = SQLAlchemy(app)
mail = Mail(app)
es = FlaskElasticsearch(app)
recaptcha = ReCaptcha(app=app)

from app import views   

现在我将recaptcha导入views.py并设置一些配置参数

from app import db, app, models, mail, es, recaptcha
app.config.update({
    'RECAPTCHA_ENABLED': True,
    'RECAPTCHA_SITE_KEY': "public",
    'RECAPTCHA_SECRET_KEY': "private"
})

并在register.html中包含{{ recaptcha }}。当表格进来时我会检查

recaptcha.verify()

但总是给予True。 recaptcha甚至没有在页面上显示? 我在google recaptcha下注册了我的域名,并使用该站点提供的公钥和私钥。 我可以使用Google recaptcha网站提供的代码段,而不是使用flask-recaptcha包,这似乎工作正常。 我宁愿使用标准包? 还有recaptcha.verify()如何区分未验证和未提交(意味着没有点击)? 任何帮助表示赞赏

进展:好的我发现recaptcha在我的网站上显示正确,而在localhost下它根本没有显示...我想这是因为localhost没有在google recaptcha下注册...但是非常令人困惑。相反,人们可能会显示一条消息,指出此域名未注册...但无论如何,我仍然得到

recapcha.verify() = True 

即使我在提交前没有点击recaptcha?我必须验证recaptcha是否已提交?

1 个答案:

答案 0 :(得分:2)

以防有人遇到类似问题 - 只需切换配置参数定义即可解决我的问题。初始化recaptcha后设置配置参数似乎不起作用。不知道为什么。这是我的设置,工作正常:

我不再在__init__.py中执行任何操作,而在views.py我有以下代码:

from flask_recaptcha import ReCaptcha

app.config.update(dict(
    RECAPTCHA_ENABLED = True,
    RECAPTCHA_SITE_KEY = "public",
    RECAPTCHA_SECRET_KEY = "private",
))

recaptcha = ReCaptcha()
recaptcha.init_app(app)

就是这样。