手机
当前位置:查字典教程网 >脚本专栏 >python >python为tornado添加recaptcha验证码功能
python为tornado添加recaptcha验证码功能
摘要:复制代码代码如下: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为tornado添加recaptcha验证码功能】相关文章:

python利用elaphe制作二维条形码实现代码

python线程锁(thread)学习示例

Python中使用urllib2防止302跳转的代码例子

python 图片验证码代码分享

Pyramid添加Middleware的方法实例

python转换摩斯密码示例

tornado捕获和处理404错误的方法

python使用PyFetion来发送短信的例子

python str与repr的区别

python不带重复的全排列代码

精品推荐
分类导航