手机
当前位置:查字典教程网 >脚本专栏 >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 生成不重复的随机数的代码

python 图片验证码代码分享

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

python远程登录代码

python实现rest请求api示例

python实现随机密码字典生成器示例

Python 用户登录验证的小例子

Pyramid添加Middleware的方法实例

python在命令行下使用google翻译(带语音)

python设置windows桌面壁纸的实现代码

精品推荐
分类导航