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

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

精彩继续

Python IP转数字,数字转IP

def IntToDottedIP( intip ): octet = '' for exp in [3,2,1,0]: octet = octet + str(intip / ( 256 ** exp )) + "." intip = intip % ( 256 ** exp ) return(octet.rstrip('.')) def DottedIPToInt( dotted_ip ): exp = 3 intip = 0 for quad in dotted_ip.split('.'): intip = intip + (int(quad) * (256 ** exp)) exp = exp - 1 return(int...

精彩继续

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"...

精彩继续

python中百分号替换参数

"%"用于格式化字符串时指定一些替换参数。字符串格式化字符:字符说明d或l十进制整数f浮点数s字符串或对象的.str()返回串c单个字符u无符号十进制整数X或x十六进制整数o八进制整数e或E指数格式的浮点数g或G按照较短的格式自选%f或%er对象的repr()版本%使用%%打印百分号

精彩继续

python的moudles文件中__all__作用

Python的moudle是很重要的一个概念,我看到好多人写的moudle里都有一个__init__.py文件。有的__init__.py中是空白,有的却会有__all__参数。搜索了下总结下__all__参数的作用。如果其他页面import*的时候如果__init__.py是空白的,可以直接import到moudle的所有函数。而如果__init__.py中定义了__all__,则import*的时候只会导入__all__部分定义的内容。例如,我们可以这样组织一个package:package1/__init__.pysubPack1/__init__.pymodule_11.pymodule_12.pymodule_13.pysubPack2/__init__.pymodule_21.pymodule_22.py……__init__.py可以为空,只要它存在,就表明此目录应被作为一个p...

精彩继续

Python学习笔记二-函数参数可以用星号+形参名形式

Python函数参数可以用星号+形参名形式(*arg或**arg)方式。其中*arg方式必须在传统参数后边出现,而**arg则必须在*arg后出现。例:deftest(x,y=5,*a,**b):printx,y,a,b函数调用结果:test(1)===>15(){}test(1,2)===>12(){}test(1,2,3)===>12(3,){}test(1,2,3,4)===>12(3,4)test(x=1)===>15(){}test(x=1,y=1)===>11(){}test(x=1,y=1,a=1)===>11(){'a':1}test(x=1,y=1,a=1,b=1)===>11(){'a':1,'b':1}test(1,y=1)===>11(){}test(1,2,y=1)===>出错,说y给赋了多个值test(1,2,3,4,a=1)===>12(3,4){'a':1}...

精彩继续

python学习笔记第一天

python运行在linux环境上会发挥最大的效率和功能,所以我在Windows下开发,然后新装了一个vmware虚拟机(用wubi安装了一个ubuntu但实在用不习惯gvim,虽然这篇文章就是在Windows下用gvim写的)运行了一个debian,只开启了命令行,内存分配了256M,基本和我这个站点所在vps内存差不多大,当个测试机跑应该问题不大了。虚拟机搭建的环境为python2.6.6为debian自带版本。框架采用了tornado2.0而非臃肿的Django,曾经尝试过flask但最终还是选择了tornado框架。debian安装环境不再多说,咱主要是做开发并不是做IT,第一天先说下tornado安装办法:tornado官方站点:http://www.tornadoweb.org/ssh连上debian后:wgethttp://github.com/downloads/faceb...

精彩继续