2017-03-04 107 views
0

燒瓶恢復工作有很多麻煩。我基本上按照這裏的教程(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 

現在我輸入驗證碼到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() 

但這總是給真。 recaptcha甚至沒有顯示在頁面上? 我已經在google recaptcha下注冊了我的域名,並且使用了該站點提供的公鑰和私鑰。 而不是使用flask-recaptcha包,我可以使用谷歌recaptcha網站提供的代碼片段,似乎工作正常。 但我更喜歡使用標準包? 又如何recaptcha.verify()區分未驗證和未提交(意思是沒有點擊)? 任何幫助表示讚賞

進度:好的我發現recaptcha在我的網站上正確顯示,而在localhost下它並沒有顯示出來......我猜這是因爲localhost沒有在google recaptcha下注冊.. 。雖然很混亂。相反,一個也許應該顯示這個域名未註冊的消息......但無論如何,我仍然得到

recapcha.verify() = True 

即使我沒有在提交之前的ReCaptcha點擊?我是否必須確認已收到recaptcha?

回答

1

爲了防萬一有人有類似的麻煩 - 我的問題通過簡單地切換配置參數定義解決。在初始化恢復過程之後設置配置參數似乎不起作用。不知道爲什麼。這裏是我的設置,工作正常:

我不__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) 

就是這樣。