Hot For Coding
Python设定MySQL结果集返回字典格式

Python的MySQLdb模块是Python连接MySQL的一个模块,默认查询结果返回是tuple类型,只能通过0,1..等索引下标访问数据

默认连接数据库:

MySQLdb.connect(
  host=host,
  user=user,
  passwd=passwd,
  db=db,
  port=port,
  charset='utf8'
)

查询数据

cur = conn.cursor()
cur.execute('select b_id from blog limit 1')
data = cur.fetchall()  
cur.close()
conn.close()

...

READ ALL

Tornado import tornado.database时出错

准备用用Tornado重写本站,但发现import tornado.database时出错

[root@lee ~]# python
Python 2.7.4 (default, Apr 11 2013, 17:08:33) 
[GCC 4.4.7 20120313 (Red Hat 4.4.7-3)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import tornado.web
>>> import tornado.database
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named database
>>>

...

READ ALL

利用谷歌做站内搜索,免费的!

站内搜索是必备的功能了,但搜索这玩意水很深,研究无底洞,而且更要命的是非常损耗服务器资源。在MySQL数据库中使用like关键字在数据比较多的时候那种蜗牛的速度更是让人蛋疼,专业一点的站点都会使用全文搜索,比like这种傻瓜匹配相对好点,但频繁的搜索请求也会扛不住。

偶然看到有些站点利用谷歌做站内搜索,感觉不错,所以推荐那些为搜索而苦恼的童鞋们

看看例子:

full

非常方便吧!格式:

site:domain keyword

就搞定了,前提是谷歌必须收录你站点,也会有这样的问题,比如你有些文章已经删除了但谷歌收录没有删除,于是你删除的文章很有可能被谷歌搜索出来然后用户点击访问不到。

...

READ ALL

CSS3实现背景颜色线性渐变gradient

CSS3新加特性gradient可以实现背景颜色,鉴于各浏览器之间还有兼容性因此这里只说线性渐变,其它渐变就算是有也不敢贸然使用

Mozilla

仅针对FireFox

background: -moz-linear-gradient(top, #eee, #aaa);
  • linear 表示线性
  • 参数top表示从顶部开始
  • 参数#eee表示开始颜色
  • #aaa表示结束颜色

full

Webkit

background: -webkit-gradient(linear, 0 0, 0 100%, from(#eee), to(#aaa));

...

READ ALL

Python数组list操作

Python list相当于JavaScript的Array数组,可以随意添加删除元素,元素类型也不限定

声明一个list

arr = []

往里边添加元素

arr.append('New item')
print arr # Output: ['New item']

添加元素到第一个位置

arr.insert(0, 'First item')
print arr # Output: ['First item', 'New item']

添加元素到第二个位置

arr.insert(1, 'Second item')
print arr # Output: ['First item', 'Second item', 'New item']

...

READ ALL

Python字符串MD5加密

Python加密模块有好几个,但无论是哪种加密方式都需要先导入相应的加密模块然后再使用模块对字符串加密。

先导入md5加密所需模块

import hashlib

创建md5对象

m = hashlib.md5()

生成加密串,其中 password 是要加密的字符串

m.update('password')

获取加密串

psw = m.hexdigest()

输出

print psw

Output:

5f4dcc3b5aa765d61d8327deb882cf99

...

READ ALL

PHP系统函数in_array()使用

PHP有一个系统函数is_array()可以判断一个值是否在数组中。

语法如下:

in_array(value,array,type)
return boolen

参数说明:

  • value: 要搜索的值
  • array: 被搜索的数组
  • type: 类型,true全等 ,false非全等(默认)

示例一:普通使用

$str = 1;
$arr = array(1, 3, 5, 7, 9);
$boolvalue = in_array($str, $arr);
var_dump($boolvalue);

Output:

...

READ ALL

刷iPhone的惨痛经历!

前几天花血本入手两部在58上个人转手港版iPhone4,用一天感觉其中一部已越狱的iPhone打电话突然没声,发烫。感觉系统不好就想刷机,换个好系统。

full

刷机我早有听闻,但从来没实践,现在是实践的机会了。开始刷机路程,时间晚上九点。

从iTunes点击更新升级提示3194

一开始,我用iTunes更新到6.1.3,等了十多分钟下载了固件后开始安装,结果在验证的时候老提示3194错误。谷歌一下都说3194是网络原因,不是机器故障,弄一些什么hosts让电脑能访问gs.apple.com服务器就好。防火墙、杀毒、其他程序通通关闭以后,还是3194错误。准备放弃刷机!

...

READ ALL

Linux监测日志tail命令详细使用

如果在Linux下调试程序的朋友应该都知道tail命令,它确实是调试程序监测日志文件的能手。打开Linux输入以下命令看看命令的使用帮助

[root@lee ~]# tail --help
用法:tail [选项]... [文件]...
显示每个指定文件的最后10 行到标准输出。
若指定了多于一个文件,程序会在每段输出的开始添加相应文件名作为头。
如果不指定文件或文件为"-" ,则从标准输入读取数据。

长选项必须使用的参数对于短选项时也是必需使用的。
  -c, --bytes=K         输出最后K 字节;另外,使用-c +K 从每个文件的
                        第K 字节输出
  -f, --follow[={name|descriptor}]
                即时输出文件变化后追加的数据。
                        -f, --follow 等于--follow=descriptor 
  -F            即--follow=name --retry
  -n, --lines=K            output the last K lines, instead of the last 10;
                           or use -n +K to output lines starting with the Kth
      --max-unchanged-stats=N
                           with --follow=name, reopen a FILE which has not
                           changed size after N (default 5) iterations
                           to see if it has been unlinked or renamed
                           (this is the usual case of rotated log files).
                           With inotify, this option is rarely useful.
      --pid=PID         同 -f 一起使用,当 PID 所对应的进程死去后终止
  -q, --quiet, --silent 不输出给出文件名的头
      --retry           即使目标文件不可访问依然试图打开;在与参数
                        --follow=name 同时使用时常常有用。
  -s, --sleep-interval=N   with -f, sleep for approximately N seconds
                             (default 1.0) between iterations.
                           With inotify and --pid=P, check process P at
                           least once every N seconds.
  -v, --verbose            always output headers giving file names
      --help            显示此帮助信息并退出
      --version         显示版本信息并退出

如果字节数或行数K 的第一个字符是"+",输出从文件开始第K 个项目,否则输出文件
最后K 个项目。K 可以使用一下几种单位之一:
b 512,kB 1000,K 1024,MB 1000*1000,M 1024*1024,
GB 1000*1000*1000,G 1024*1024*1024,以及T,P,E,Z,Y。

如果您希望即时追查一个文件的有效名称而非描述内容(例如循环日志),默认
的程序动作并不如您所愿。在这种场合可以使用--follow=name 选项,它会使
tail 定期追踪打开给定名称的文件,以确认它是否被删除或被其它某些程序重新创建过。

请向bug-coreutils@gnu.org 报告tail 的错误
GNU coreutils 项目主页:<http://www.gnu.org/software/coreutils/>
GNU 软件一般性帮助:<http://www.gnu.org/gethelp/>
请向<http://translationproject.org/team/zh_CN.html> 报告tail 的翻译错误
要获取完整文档,请运行:info coreutils 'tail invocation'

...

READ ALL

JavaScript获取图片原始尺寸

上周我写了一篇快速获取图片大小的文章,参见《JavaScript快速获取图片宽高的方法》,在那篇文章里所获取的图片大小都是原始尺寸。既然这样,我今天为何还要再写一篇文章介绍如何获取页面上图片原始大小的方法呢?只是有些博友发邮件问我这个问题了,我感觉还是有必要写写。

通过去除样式获取原始大小

在JavaScript中获取页面中图片的大小都是最终样式呈现的大小,比如一张1000px宽的图片你给它设置宽为300px那么JavaScript获取到图片的宽度就是300px。

...

READ ALL

1 2 3