Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/354.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何启用reCAPTCHA_Python_Google App Engine_Recaptcha - Fatal编程技术网

Python 如何启用reCAPTCHA

Python 如何启用reCAPTCHA,python,google-app-engine,recaptcha,Python,Google App Engine,Recaptcha,我尝试使用标记启用reCAPTCHA {{capture}} 预期的输出是reCAPTCHA框。相反,我看到此代码直接显示,就像页面上的代码一样,看起来像一个bug: <script type="text/javascript" src="http://api.recaptcha.net/ challenge?k=6LckUsMSAAAAAGcZR3JZw6Dusn4wKBBfZxHXh8w5"></script> <noscript> <iframe

我尝试使用标记启用reCAPTCHA

{{capture}}
预期的输出是reCAPTCHA框。相反,我看到此代码直接显示,就像页面上的代码一样,看起来像一个bug:

<script type="text/javascript" src="http://api.recaptcha.net/ challenge?k=6LckUsMSAAAAAGcZR3JZw6Dusn4wKBBfZxHXh8w5"></script> <noscript> <iframe src="http://api.recaptcha.net/noscript?k=6LckUsMSAAAAAGcZR3JZw6Dusn4wKBBfZxHXh8w5" height="300" width="500" frameborder="0"></iframe><br /> <textarea name="recaptcha_challenge_field" rows="3" cols="40"></ textarea> <input type='hidden' name='recaptcha_response_field' value='manual_challenge' /> </noscript>
是GET处理程序,而POST具有

def post(self, view): 
    challenge = self.request.get('recaptcha_challenge_field')
    response  = self.request.get('recaptcha_response_field')
    remoteip  = os.environ['REMOTE_ADDR']
    cResponse = captcha.submit(
             challenge,
             response,
             CAPTCHA_PRV_KEY,
             remoteip)

if cResponse.is_valid==True:
    isHuman=True
else:
    isHuman=False 
。我应该如何进行

更新:为了继续,我还添加了一个逻辑,该逻辑只允许变量isHuman=True通过,我希望重定向到表单页面,而不是打印错误消息:

def post(self, view): 
    challenge = self.request.get('recaptcha_challenge_field')
    response  = self.request.get('recaptcha_response_field')
    remoteip  = os.environ['REMOTE_ADDR']
    cResponse = captcha.submit(
                 challenge,
                 response,
                 CAPTCHA_PRV_KEY,
                 remoteip)

    if cResponse.is_valid==True:
        isHuman=True
    else:
        isHuman=False 
        self.response.out.write('captcha failed') #TO DO: redirect to form page
        return

你是Django自动逃跑的受害者


尝试
{capture | safe}}

Django模板系统默认自动执行HTML转义,以防止跨站点脚本攻击之类的事情——这就是将所有HTML
转换为
标记的原因

要防止出现这种情况,可以调用
安全
过滤器,如:


{{capture | safe}}

脚本标记中是否有{capture}?谢谢您提供的解决方案。我已经更新了,它正在进行我尝试的下一个步骤:重定向到表单页面当
isHuman=false
Lol时,我与jinja2有相同的问题。
def post(self, view): 
    challenge = self.request.get('recaptcha_challenge_field')
    response  = self.request.get('recaptcha_response_field')
    remoteip  = os.environ['REMOTE_ADDR']
    cResponse = captcha.submit(
             challenge,
             response,
             CAPTCHA_PRV_KEY,
             remoteip)

if cResponse.is_valid==True:
    isHuman=True
else:
    isHuman=False 
def post(self, view): 
    challenge = self.request.get('recaptcha_challenge_field')
    response  = self.request.get('recaptcha_response_field')
    remoteip  = os.environ['REMOTE_ADDR']
    cResponse = captcha.submit(
                 challenge,
                 response,
                 CAPTCHA_PRV_KEY,
                 remoteip)

    if cResponse.is_valid==True:
        isHuman=True
    else:
        isHuman=False 
        self.response.out.write('captcha failed') #TO DO: redirect to form page
        return