python为tornado添加recaptcha验证码功能


Posted in Python onFebruary 26, 2014
    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

   
3water.com<!DOCTYPE html>
3water.com<html>
3water.com<head>
3water.com3water.com<title>reCaptcha验证码</title>
3water.com</head>
3water.com<body>
3water.com3water.com<form action="" method="post">
3water.com3water.com<script type="text/javascript" src="http://www.google.com/recaptcha/api/challenge?k={{ publickey }}"></script>
3water.com3water.com<noscript>
3water.com3water.com3water.com<iframe src="http://www.google.com/recaptcha/api/noscript?k={{ publickey }}" height="300" width="500" frameborder="0"></iframe><br>
3water.com3water.com3water.com<textarea name="recaptcha_challenge_field" rows="3" cols="40"></textarea>
3water.com3water.com3water.com<input type="hidden" name="recaptcha_response_field" value="manual_challenge">
3water.com3water.com</noscript>
3water.com3water.com</form>
3water.com</body>
3water.com</html>
Python 相关文章推荐
python 布尔操作实现代码
Mar 23 Python
Python网页解析利器BeautifulSoup安装使用介绍
Mar 17 Python
python实现的系统实用log类实例
Jun 30 Python
详解Python进程间通信之命名管道
Aug 28 Python
1分钟快速生成用于网页内容提取的xslt
Feb 23 Python
教你使用python实现微信每天给女朋友说晚安
Mar 23 Python
Python定义二叉树及4种遍历方法实例详解
Jul 05 Python
selenium + python 获取table数据的示例讲解
Oct 13 Python
python 函数中的内置函数及用法详解
Jul 02 Python
基于python进行抽样分布描述及实践详解
Sep 02 Python
ffmpeg+Python实现B站MP4格式音频与视频的合并示例代码
Oct 21 Python
Python 机器学习工具包SKlearn的安装与使用
May 14 Python
python实现博客文章爬虫示例
Feb 26 #Python
python处理中文编码和判断编码示例
Feb 26 #Python
python实现网页链接提取的方法分享
Feb 25 #Python
python3模拟百度登录并实现百度贴吧签到示例分享(百度贴吧自动签到)
Feb 24 #Python
python实现socket客户端和服务端简单示例
Feb 24 #Python
python抓取网页内容示例分享
Feb 24 #Python
使用python装饰器验证配置文件示例
Feb 24 #Python
You might like
聊天室php&amp;mysql(五)
2006/10/09 PHP
php 随机数的产生、页面跳转、件读写、文件重命名、switch语句
2009/08/07 PHP
PHP中图片等比缩放的实例
2013/03/24 PHP
php常用ODBC函数集(详细)
2013/06/24 PHP
PHP+FastCGI+Nginx配置PHP运行环境
2014/08/07 PHP
PHP提示Warning:phpinfo() has been disabled函数禁用的解决方法
2014/12/17 PHP
php对关联数组循环遍历的实现方法
2015/03/13 PHP
用XMLDOM和ADODB.Stream实现base64编码解码实现代码
2010/11/28 Javascript
引用其它js时如何同时处理多个window.onload事件
2014/09/02 Javascript
基于JQuery制作可编辑的表格特效
2014/12/23 Javascript
jQuery弹出框代码封装DialogHelper
2015/01/30 Javascript
基于jQuery的$.getScript方法去加载javaScript文档解析
2017/11/08 jQuery
node简单实现一个更改头像功能的示例
2017/12/29 Javascript
vue利用axios来完成数据的交互
2018/03/23 Javascript
关于layui 弹出层一闪而过就消失的解决方法
2019/09/09 Javascript
Vue中图片Src使用变量的方法
2019/10/30 Javascript
uni-app如何实现增量更新功能
2020/01/03 Javascript
[01:33:59]真人秀《加油 DOTA》 第六期
2014/09/09 DOTA
python如何提取英语pdf内容并翻译
2020/03/03 Python
python 将视频 通过视频帧转换成时间实例
2020/04/23 Python
python Zmail模块简介与使用示例
2020/12/19 Python
Python页面加载的等待方式总结
2021/02/28 Python
css3新单位vw、vh的使用教程
2018/03/23 HTML / CSS
Html5新增标签与样式及让元素水平垂直居中
2019/07/11 HTML / CSS
HTML如何让IMG自动适应DIV容器大小的实现方法
2020/02/25 HTML / CSS
h5移动端调用支付宝、微信支付的实现
2020/06/08 HTML / CSS
万得城电器土耳其网站:欧洲第一大电子产品零售商
2016/10/07 全球购物
美容师的职业规划书
2013/12/27 职场文书
运动会邀请函范文
2014/01/31 职场文书
推荐信怎么写
2014/05/09 职场文书
环卫工人节活动总结
2014/08/29 职场文书
生日寿星公答谢词
2015/09/29 职场文书
学校扫黄打非工作总结
2015/10/15 职场文书
最美劳动诗,致敬所有的劳动者!
2019/07/12 职场文书
Go结合Gin导出Mysql数据到Excel表格
2022/08/05 Golang
Li list-style-image 图片垂直居中实现方法
2023/05/21 HTML / CSS