`
莫激动
  • 浏览: 43662 次
社区版块
存档分类
最新评论
文章列表
通常shell中我们需要给变量设置默认值,可能会写出如下代码     #!/bin/bash if [ ! $1 ]; then $1='default' fi     显然这种方式在变量少的时候没啥问题,一旦变量多起来,我们可能就有大量的重复劳动(if判断)   有没有比较优雅的方式,不用写一大堆if判断,显然答案是有的   1.变量为null时     #当变量a为null时则var=b var=${a-b}   2.变量为null且为空字符串的时候     #当变量a为null或为空字符串时则var=b var=${a:-b}
在编写shell的时候我们都需要万分小心,尤其是给root执行的脚本     #!/bin/bash .... rm -rf $1/$2/bin/ ....     假设上述脚本我执行的时候没有传递参数,造成的后果是相当恐怖的。     有没有好的办法解决这个问题,答案是有的     #!/bin/bash .... if [ !$1 ]; echo '$1 is null' exit 1 fi if [ !$2 ]; echo '$1 is null' exit 1 fi rm -rf $1/$2/bin .... ...
在shell 中判断变量为null 方法一:   if [ $x ];then echo 'not null' else echo 'is null' fi   方法二:   if [ -z "$x" ]; echo 'is null' else echo 'not null' fi    
webpy中获取get和post参数的方式非常简单     args=web.input() name=args.get('name') age=args.get('age') sex=args.get('sex')   需要注意的是上面方法获得的参数的类型全是unicode,所以对于数值需要作相应的类型转换才能使用   获得上传的文件     args=web.input() file=args.get('file')#获得文件 filename=file.filename#获得文件名称 content=file.read()#读取文件内容
 webpty中使用session非常简单     import web web.config.debug = False urls = ( "/count", "count", "/reset", "reset" ) app = web.application(urls, locals()) session = web.session.Session(app, web.session.DiskStore('sessions'), initializer={'count': 0}) ...
之前我们讲的都是简单的返回文本到浏览器,例如下面将会返回hello word到浏览器   # coding:utf-8 import web urls=( '/','index' ) app=web.application(urls,globals()) class index: def GET(self): return 'hello word!' if __name__ == '__main__': app.run()     当然我们也可以返回html到浏览器,例如     # coding:u ...
今天重点说下webpy的路由规则。     #这里声明了三条路由规则,它是一个tuple,由url匹配规则和处理类组成 #url匹配规则是用正则表达式书写的 #可以声明多条路由规则,每一条都是由url匹配规则和处理类组成 urls=( '/','index', '/user','user', '/topic','topic' )  既然url匹配规则是正则表达式那我们就可以灵活的写出各种表达式     urls=( '/','index', '/(user|member)','user', #匹配 htt ...
之前介绍了webpy,还写了一个自己的web程序,下面我们就来分析下代码。   # coding:utf-8 import web urls=( '/','index' ) app=web.application(urls,globals()) class index: def GET(self): return 'hello webpy!' if __name__=='__main__': app.run()       import web #导入webpy的模块     #这里声明了路由规则, ...
python的web框架是一个百花齐放的世界,完全列表请看这里。   面对如此众多的框架我们要如何选择!它们都有各自的优缺点,你不可能找到一款完美的,其实只需要选择适合的即可!   这里介绍webpy,进入官方首页你可以看到右边有一个hello word的例子   import web urls = ( '/(.*)', 'hello' ) app = web.application(urls, globals()) class hello: def GET(self, name): if not ...
python操作mysql需要用到MySQLdb这个库。   1.下载MySQLdb,点击这里下载(可能被墙请自带梯子)   2.使用   import MySQLdb try: con = MySQLdb.connect(host='192.168.1.100', user='myuser', passwd='123456', port='3306', db='mydb',charset='utf8') c = con.cursor() c.execute('select * from user'); rows=c.fetchall() # ...
python对图片的操作需要使用到(Python Imaging Library)PIL库,PIL可以处理几乎所有的图片类型,了解更多请点击这里(可能被墙请自带梯子)。 1.下载PIL并安装     windows:直接下载对应的安装包     linux: yum install python-imaging 或 sudo apt-get install python-imaging 或 直接通过源码安装   2.使用   import Image img = Image.open('example.jpg') new_img= img.resize((w, h), ...
1.首先下载mysql源码包,我这里下载MySQL Community Server 5.5。 2.检查机器是否装有cmake,直接输入cmake显示帮助信息表示已安装,现在mysql编译都需要用cmake生成makefile文件,关于cmake更多可以点击这里。如果你的机器上没有cmake请先行安装cmake。   yum install cmake 或者 sudo apt-get install cmake   3.解压mysql并编译     # tar xzvf mysql-5.5.27.tar.gz # cd mysql-5.5.27 # cmake -DCM ...
varnish通过几个辅助命令行工具观察varnish的工作情况: varnishlog: varnish的日志是写入共享内存的,可以使用varnishlog命令行工具读取     [admin@localhost ~]$ varnishlog -c //上面的命令将输出客户端的请求信息     195 RxRequest c GET 195 RxURL c /BD/310x85-2.jpg 195 RxProtocol c HTTP/1.1 195 RxHeader c Accept: */* 195 Rx ...
  Varish Configuration Language 简称VCL,通过它我们可以完成一些复杂的逻辑处理。下面将详细介绍:   Backend declarations:   backend www { .host = "www.example.com"; .port = "80"; .connect_timeout = 1s; .first_byte_timeout = 5s; .between_bytes_timeout = 2s; }   或者   backend www { .host ...
varnish是一款高性能的开源HTTP加速器,用来缓存静态文件(图片,js,css)以减少后端服务器压力,性能要比squid高很多。1.下载varnish,https://www.varnish-cache.org/  #建议下载最新稳定版2.编译安装  tar xzvf varnish-3.0.2.tar.gz  cd varnish  sh autogen.sh  sh configure  #一些可选参数  make  make install3.启动varnish  通过varnishd命令来启动varnish服务  varnishd -a 0.0.0.0:80 -s malloc,1 ...
Global site tag (gtag.js) - Google Analytics