给tornado的database.py增加dbutils支持

忘记什么时候在邮件订阅中看到smallfish的一个给tornado的database.py增加dbutils支持的文章了,去smaillfish的blog看了一下居然是09年写的一篇文章。小鱼修改的代码为:defreconnect(self):"""Closestheexistingdatabaseconnectionandre-opensit."""self.close()try:fromDBUtilsimportPooledDBpool_con=PooledDB.PooledDB(creator=MySQLdb,**self._db_args)self._db=pool_con.connection()except:self._db=MySQLdb.connect(**self._db_args)self._db.autocommit(True)小鱼干掉了原有的设置autocommi...

精彩继续

debian配置Tornado+MySql+nginx环境(附俺的网址缩短代码下载)

最近上线的网址缩短项目是学习Python的练手作,框架采用这一阵比较火热的Tornado。简单写一个配置安装顺序,仅为记录。全部软件均通过apt-get方式安装(Tornado除外)清除无用组件(感谢hostloc坛子的lsylsy2)apt-getupdate&&apt-getupgradeapt-get-ypurgeapache2-*bind9-*xinetdsamba-*nscd-*portmapsendmail-*sasl2-binapt-get-ypurgelynxmemtesterunixodbcodbcinst-*sudotcpdumpttf-*apt-getautoremove&&apt-getclean安装python2.6apt-getinstallpython2.6rm/usr/bin/pythonln-s/usr/bin/python...

精彩继续

Tornado获取客户端IP(补充)

今天发现犯了一个错误,前几天写过一篇“tornado获取客户端IP”,但今天查看数据库中数据时候发现所有的IP均是127.0.0.1(因数据库使用bigint存储,所以数据库中看到IP均是2130706433),在Group中搜索了一下发现Ben以前解释过这个问题BenDarnellTornadosupportsbothx-real-ipandx-forwarded-for,butyouhavetosetxheaders=TrueinyourHTTPServerconstructortohaveitlookateitherofthem.-Ben即tornado支持通过x-real-ip或x-forwarded-for来获取IP,但前提是需要在你的HTTPServer实例中增加xheaders=True参数,如:http_server=tornado.httpserver.HTTPServe...

精彩继续

汇报下这几天的工作

这些天没有动力来写什么东西,趁有时间稍微完善了下前几天学习python的作品“网址缩短”,之前记录短链接点击记录时候没有过滤搜索引擎蜘蛛爬虫…So,日志中有超级多的蜘蛛数据。这次修改了下过滤了User-Agent中有bot和spider字样的数据,这些数据只跳转不做记录。另外一个主要修改的地方就是增加了一个简单的后台管理,后台可以简单粗暴的删除短链接、可以暂停启用短链接(现在的规则是添加短链接默认是启用,但俺会时不时上去看一下,如果有比较多的恶意链接或者非法内容,可能稍后启用关键词过滤或者粗暴的启用完全审核机制)下一步会简单重构一下代码,现有代码基本都写在一个py文件中(虽然代码只有200行,但有必要抽离一部分代码出来了,现只抽离了后台的分页代码和BaseHandler出来)。总结下现在使用到的资源及版本:Debian6、python2.6、MySql5.1.49、tornado2.1.1...

精彩继续

新上线一个python(tornado)的短网址站

最近都没有更新内容,十一基本和网络断掉了。节后在处理一个短信上行接口的东西,这几天用学到的简单python做了个网址缩短的小站点。网址为:http://au81.com整体代码(不包含第三方代码库)没超过150行(算上注释、空格)。python就是可以写很少的代码做比较强大的功能。BTW:明天要开始学习Java了,虽然心底里痛恨这个臃肿的东西,但为了混个饭吃,不得不学习。

精彩继续

tornado获取客户端IP

网上搜到的用tornado获取客户端IP都使用self.request.headers['X-Real-Ip'],但实际翻tornado源代码发现只需要获取self.request.remote_ip即可取到客户端IP见引用tornado源代码(对应文件为httpserver.py中HTTPRequest属性remote_ip)ifconnectionandconnection.xheaders:#SquidusesX-Forwarded-For,othersuseX-Real-Ipself.remote_ip=self.headers.get("X-Real-Ip",self.headers.get("X-Forwarded-For",remote_ip))#AWSusesX-Forwarded-Protoself.protocol=self.headers.get("X-Scheme"...

精彩继续