首页 > 其他分享 >flask-wtf中使用RecaptchaField报RECAPTCHA_PUBLIC_KEY config not set错误

flask-wtf中使用RecaptchaField报RECAPTCHA_PUBLIC_KEY config not set错误

时间:2022-12-07 16:37:03浏览次数:48  
标签:set key flask RECAPTCHA label KEY message PUBLIC

第一次使用flask-wtf的RecaptchaField,定义如下

配置文件设置

1     # WTF 设置
2     WTF_I18N_ENABLED = False
3     SECRET_KEY = os.getenv('SECRET_KEY', 'some secret words') or 'my secert key dfdfdfdfdfdf'
4     RECAPTCHA_PRIVATE_KRY = os.getenv('RECAPTCHA_PRIVATE_KRY', 'some recapcha private key words') or 'my secert key dghghghghgh'
5     RECAPTCHA_PUBLIC_KRY = os.getenv('RECAPTCHA_PUBLIC_KRY', 'some recapcha public key words') or 'mertefghdfgsdsasdfasdfghjg'

Form表单定义

1 class RegistForm(MyBaseForm):
2     userName = StringField(label='用户名:', validators=[DataRequired(message='必须填写用户名'), Length(min=2, max=20)])
3     email = StringField(label='邮箱:', validators=[DataRequired(message='必须提供注册邮箱'), Email(message='所提供邮箱需满足邮箱格式')])
4     password = PasswordField(label='密码:', validators=[DataRequired(message='必须提供登录密码'), Length(min=4, max=20, message='密码长度必须在2-20个字符之间')])
5     confirm = PasswordField(label='重复密码:', validators=[DataRequired(message='请重复输入密码'), EqualTo('password', message='重复输入密码需与前密码一致')])
6     recaptcha = RecaptchaField()
7 
8     submit = SubmitField(label='注册')

确定在运行中current_app中可以查到config中的['RECAPTCHA_PUBLIC_KRY']

但在运行中报如下错误

 

跟踪在widgets.py中报这个错误

    def __call__(self, field, error=None, **kwargs):
        """Returns the recaptcha input HTML."""

        try:
            public_key = current_app.config["RECAPTCHA_PUBLIC_KEY"]
        except KeyError:
            raise RuntimeError("RECAPTCHA_PUBLIC_KEY config not set") from None

        return self.recaptcha_html(public_key)

调试跟踪确定有值

请问有大神可以解决吗?

 

标签:set,key,flask,RECAPTCHA,label,KEY,message,PUBLIC
From: https://www.cnblogs.com/hujunf/p/16963472.html

相关文章

  • .pem文件,.csr文件,.key文件。。。区别
    三、.pem文件,.csr文件,.key文件。。。区别做项目时在阿里云上申请的证书,下载Nginx对应的证书时,发现有两个文件一个以.key结尾,一个以.pem结尾,而自定义生成证书时,发现有三......
  • flask入门
    1.helloword示例fromflaskimportFlaskapp=Flask(__name__)@app.route('/')defhello_world():return'HelloWorld!'if__name__=='__main__':......
  • Django--QuerySet
    一、QuerySetAPI数据库接口从数据库中查询出来的结果一般是一个集合,这个集合叫做QuerySet。1.QuerySet创建对象的方法:一共有四种方法方法1Author.objects.crea......
  • flask 获取客户端ip, 以及检查是不是内网ip
    对于有nginx反向代理的请求,需要在nginx配置中添加如下内容:proxy_set_headerX-Forwarded-For$proxy_add_x_forwarded_for;然后在项目代码中获取ipfromflaskimportr......
  • javaScript_01_按照key排序
     javaScript_01_按照key排序前言Object.keys()与Objetc.values()实现按key排序前言最近做一个小程序项目需要用到腾讯地图的api,在计算sig的时候需要将参数按照......
  • Java数组转Set的方法
    转:Java数组转Set的方法        ......
  • Redis 的 keys 命令你知道有多慢吗?
    keys命令的用法:keyspattern查找符合正则匹配的key的列表。扫描对象是Redis服务中所有的key,想想都很慢对不对?同时执行keys命令的同时,Redis进程将被阻塞,无法执行其他命......
  • zset 与命令
    转自:https://www.runoob.com/redis/redis-sorted-sets.html1.zset数据结构Redis有序集合和集合一样也是string类型元素的集合,且不允许重复的成员。每个元素都会关联......
  • [Typescript] 129. Hard - Capitalize Nest Object Keys
    Capitalizethekeyoftheobject,andifthevalueisanarray,iteratethroughtheobjectsinthearray. /*_____________YourCodeHere_____________*/......
  • docker (56) Recv failure: Connection reset by peer
    第一步:检查防火墙是否关闭systemctlstatusfirewalld检查防火墙状态systemctldisablefirewalld永久关闭防火墙第二步:检查转发规则是否为1输入命令:sysctlnet.ipv......