解决Flask-wtf 里面recaptcha的问题

今天刚学习了调用recaptcha 来验证是人类还是机器人的方法,

在Forms.py里面import 引用了 recaptcha, 并添加了recaptcha验证

from flask_wtf import FlaskForm, RecaptchaField
#下面RegisterForm继承的就是上面import 引入的是FlaskForm类
from wtforms import StringField, PasswordField, SubmitField
from wtforms.validators import DataRequired, Length, EqualTo, Email
#但是验证的任务交给 wtforms,要提一下的是,Email验证报错的话,是pip install wtforms版本太高,
#解决方法有两个
# 第一个方法 :安装低版本,百度一下哪一个合适.
# 第二个方法 : 单独 pip install email-validator, 也就是另安装 email-validator




class RegisterForm(FlaskForm):
    #验证网页端post提交过来的Username, Password, Reapeat Password, Email, 也就是用户名,密码,二次密码,邮箱,最后还有验证提交注册
    username = StringField('Username', validators=[DataRequired(), Length(min=6, max=20)])
    password = PasswordField('Password', validators=[DataRequired(), Length(min=6, max=30)])
    confirm = PasswordField('Repeat Password', validators=[DataRequired(), EqualTo('password')])
    email = StringField('Email', validators=[DataRequired(), Email()])
    recaptcha = RecaptchaField()    #recaptcha验证
    submit = SubmitField('注册')

还需要去conifg.py里面添加  RECAPTCHA_PUBLIC_KEY 密钥

import os

basedir = os.path.abspath(os.path.dirname(__file__))

class Config(object):

    #SECRET_KEY
    SECRET_KEY = os.environ.get('SECRET_KEY')# or 'asdf865zx3'  or前面的是需要在windows系统环境添加一条SECRET_KEY或者直接写明文密码

    #RECAPTCHA_PUBLIC_KEY
    RECAPTCHA_PUBLIC_KEY = os.environ.get('RECAPTCHA_PUBLIC_KEY')  #or前面的是需要在windows系统环境添加或者直接写明文密码

    # SQLALCHEMY_DATABASE_URI = 'sqlite:///' + os.path.join(basedir,'app.db')
    SQLALCHEMY_DATABASE_URI = 'sqlite:///' + os.path.join(os.environ.get('DATABASE_URL'), 'app.db')
    # SQLALCHEMY_DATABASE_URI = 'sqlite:///D:\\db\\app.db'
    SQLALCHEMY_TRACK_MODIFICATIONS = False

我这里引用的是windows系统环境里面密钥, 这个密钥不是随便填一个,而是要去google申请, google会给你这个随机的密钥

申请如下:

先去google recaptcha          https://www.google.com/recaptcha/admin#list   

点新增+,    标签名随便填, 方便识别这里我填127.0.0.1,选v2, 再选第一个

下面的域名填127.0.0.1, 也可以填localhost, 这里我填的127.0.0.1

确定就好了, google会给你两个密钥,  RECAPTCHA_PUBLIC_KEY = '填写google给你的网站密钥',    引号别忘记了.

我用的是windows系统环境来配置的, 所以直接写       RECAPTCHA_PUBLIC_KEY = os.environ.get('RECAPTCHA_PUBLIC_KEY')

前提是系统环境要先添加进这个密钥, 并且要重启电脑 , 像下面这样

 再次运行flask, 就能正常验证了.

还要提一点, 你要确保你的网络是可以访问google的, 在这个前提下才能使用.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值