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自动化开发学习之三级菜单制作
Jul 14 Python
Python实现的密码强度检测器示例
Aug 23 Python
python使用thrift教程的方法示例
Mar 21 Python
python基于SMTP协议发送邮件
May 31 Python
python爬虫项目设置一个中断重连的程序的实现
Jul 26 Python
浅谈Python2之汉字编码为unicode的问题(即类似\xc3\xa4)
Aug 12 Python
python读取配置文件方式(ini、yaml、xml)
Apr 09 Python
python pyecharts 实现一个文件绘制多张图
May 13 Python
Python爬虫JSON及JSONPath运行原理详解
Jun 04 Python
Python爬虫scrapy框架Cookie池(微博Cookie池)的使用
Jan 13 Python
pytorch 如何使用batch训练lstm网络
May 28 Python
OpenCV-Python使用cv2实现傅里叶变换
Jun 09 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
《被神捡到的男人》动画化计划进行中!
2020/03/06 日漫
如何获得PHP相关资料
2006/10/09 PHP
如何使用PHP获取网络上文件
2006/10/09 PHP
PHP中extract()函数的定义和用法
2012/08/17 PHP
php中隐形字符65279(utf-8的BOM头)问题
2014/08/16 PHP
Destoon实现多表查询示例
2014/08/21 PHP
PHP中imagick函数的中文解释
2015/01/21 PHP
Laravel5.1 框架路由基础详解
2020/01/04 PHP
PHP 加密 Password Hashing API基础知识点
2020/03/02 PHP
jquery改变tr背景色的示例代码
2013/12/28 Javascript
js换图片效果可进行定时操作
2014/06/09 Javascript
JavaScript中textRange对象使用方法小结
2015/03/24 Javascript
JavaScript实现LI列表数据绑定的方法
2015/08/04 Javascript
js实现商品抛物线加入购物车特效
2020/11/18 Javascript
BootStrap Validator 版本差异问题导致的submitHandler失效问题的解决方法
2016/12/01 Javascript
vue2.0中click点击当前li实现动态切换class
2017/06/21 Javascript
vue.js实现条件渲染的实例代码
2017/06/22 Javascript
Vue.js实现输入框绑定的实例代码
2017/08/24 Javascript
vue 中directive功能的简单实现
2018/01/05 Javascript
你了解vue3.0响应式数据怎么实现吗
2019/06/07 Javascript
微信小程序渲染性能调优小结
2019/07/30 Javascript
使用Vue生成动态表单
2019/11/26 Javascript
python基础教程之元组操作使用详解
2014/03/25 Python
Python中的lstrip()方法使用简介
2015/05/19 Python
Python爬取qq music中的音乐url及批量下载
2017/03/23 Python
python操作excel文件并输出txt文件的实例
2018/07/10 Python
基于python指定包的安装路径方法
2018/10/27 Python
Python数据结构与算法(几种排序)小结
2019/06/22 Python
Selenium Webdriver元素定位的八种常用方式(小结)
2021/01/13 Python
美国一家主营日韩美妆护肤品的在线商店:iMomoko
2016/09/11 全球购物
军人违纪检讨书
2014/02/04 职场文书
会计学自我鉴定
2014/02/06 职场文书
校庆标语集锦
2014/06/25 职场文书
优秀中职教师事迹材料
2014/08/26 职场文书
观看《信仰》心得体会
2016/01/15 职场文书
Vue Element-ui表单校验规则实现
2021/07/09 Vue.js