python为tornado添加recaptcha验证码功能_python教程-查字典教程网
python为tornado添加recaptcha验证码功能
python为tornado添加recaptcha验证码功能
发布时间:2016-12-28 来源:查字典编辑
摘要:复制代码代码如下:fromurllib.requestimporturlopenfromurllib.parseimporturlencod...

复制代码 代码如下:

from urllib.request import urlopen

from urllib.parse import urlencode

import tornado.httpserver

import tornado.ioloop

import tornado.web

#获取key: https://www.google.com/recaptcha/whyrecaptcha

publickey = '填入你的 public key'

privatekey = '填入你的 private key'

class Application(tornado.web.Application):

def __init__(self):

handlers = [

(r'/', IndexHandler)

]

settings = dict(

template_path="templates",

)

tornado.web.Application.__init__(self, handlers, **settings)

class IndexHandler(tornado.web.RequestHandler):

def get(self):

self.render('index.html', publickey=publickey)

def post(self):

url = 'http://www.google.com/recaptcha/api/verify'

#验证码

challenge = self.get_argument('recaptcha_challenge_field')

#用户输入

response = self.get_argument('recaptcha_response_field')

data = {

'privatekey': privatekey,

'remoteip': self.request.remote_ip,

'challenge': challenge,

'response': response

}

res = urlopen(url, data=urlencode(data).encode())

#获取验证结果,这里直接将返回结果输出到页面

self.write(res.read().decode())

if __name__ == '__main__':

server = tornado.httpserver.HTTPServer(Application())

server.listen(10001)

tornado.ioloop.IOLoop.instance().start()

templates/index.html

复制代码 代码如下:

jb51.net<!DOCTYPE html>

jb51.net<html>

jb51.net<head>

jb51.netjb51.net<title>reCaptcha验证码</title>

jb51.net</head>

jb51.net<body>

jb51.netjb51.net<form action="" method="post">

jb51.netjb51.net<script type="text/javascript" src="http://www.google.com/recaptcha/api/challenge?k={{ publickey }}"></script>

jb51.netjb51.net<noscript>

jb51.netjb51.netjb51.net<iframe src="http://www.google.com/recaptcha/api/noscript?k={{ publickey }}" height="300" width="500" frameborder="0"></iframe><br>

jb51.netjb51.netjb51.net<textarea name="recaptcha_challenge_field" rows="3" cols="40"></textarea>

jb51.netjb51.netjb51.net<input type="hidden" name="recaptcha_response_field" value="manual_challenge">

jb51.netjb51.net</noscript>

jb51.netjb51.net</form>

jb51.net</body>

jb51.net</html>

相关阅读
推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  • 最新python学习
    热门python学习
    脚本专栏子分类