Hot For Coding
Python如何连接MySQL数据库

在PHP中要连接MySQL需要开启模块,在Python中同样也是需要安装MySQLdb模块再import相应模块才能操作MySQL数据库。

下载模块

下载地址 https://sourceforge.net/projects/mysql-python/

注意:如果你的Python是64位的,请下载64位,如果你的Python是32位则下载32位。否则安装后再使用时会提示这不是有效的Win32位程序

安装模块

如果是Win系统,只管点击next下一步安装就好。

如果是Linux系统,按以下步骤安装

wget -O python-1.2.3c1.tar.gz http://cdnetworks-kr-1.dl.sourceforge.net/project/mysql-python/mysql-python-test/1.2.3c1/MySQL-python-1.2.3c1.tar.gz
tar xzvf python-1.2.3c1.tar.gz
cd MySQL-python-1.2.3c1
python setup.py build

...

READ ALL

Python中遍历字典

Python字典的遍历方法有好几种,其中一种是for...in,这个我就不说明,在Python了几乎随处都可见for...in。下面说的这种遍历方式是item()方法。

item()

item()方法把字典中每对key和value组成一个元组,并把这些元组放在列表中返回。

DEMO

Code

# coding=utf8

person={
  'name':'Nicholas',
  'age':'26',
  'city':'BeiJing',
  'blog':'www.qttc.net'
}

for key,value in person.items():
  print 'key=',key,',value=',value

...

READ ALL

Python创建目录文件夹

Python对文件的操作还算是方便的,只需要包含os模块进来,使用相关函数即可实现目录的创建。

主要涉及到三个函数

  • os.path.exists(path) 判断一个目录是否存在
  • os.makedirs(path) 多层创建目录
  • os.mkdir(path) 创建目录

DEMO

直接上代码

def mkdir(path):
  # 引入模块
  import os

  # 去除首位空格
  path=path.strip()
  # 去除尾部 \ 符号
  path=path.rstrip("\\")

  # 判断路径是否存在
  # 存在     True
  # 不存在   False
  isExists=os.path.exists(path)

  # 判断结果
  if not isExists:
    # 如果不存在则创建目录
    print path+' 创建成功'
    # 创建目录操作函数
    os.makedirs(path)
    return True
  else:
    # 如果目录存在则不创建,并提示目录已存在
    print path+' 目录已存在'
    return False

# 定义要创建的目录
mkpath="d:\\qttc\\web\\"
# 调用函数
mkdir(mkpath)

...

READ ALL

Python的startswith与endswith函数

在Python中有两个函数分别是startswith()函数与endswith()函数,功能都十分相似,startswith()函数判断文本是否以某个字符开始,endswith()函数判断文本是否以某个字符结束。

startswith()函数

此函数判断一个文本是否以某个或几个字符开始,结果以True或者False返回。

text='welcome to qttc blog'
print text.startswith('w')      # True
print text.startswith('wel')    # True
print text.startswith('c')      # False
print text.startswith('')       # True

...

READ ALL

Python元组添加元素方法

在Python的元组中,一旦创建就不能改变。也没有提供向元组添加元素的操作函数,因此,要向已创建好的元组添加元素只能另创方法。

我们知道,元组中的每一个元素的数据类型都不限制,根据这一点我们可以这么做

# coding=utf8
 
tuple=('a','b','c')
print '原先的元组:',tuple
 
newTuple=(tuple,'d','e')
print '添加元素后的元组:', newTuple

打印结果

('a', 'b', 'c')
(('a', 'b', 'c'), 'd', 'e')

虽然是重新声明了一个元组,但不影响元素的使用。新的元素有三个元素,而第一个元素是一个元组,其余的元素则是字符串。这样的元组显然不是我们想要的格式,但可以使用嵌套循环遍历二维元组也可以取得全部元素。

...

READ ALL

Python中filter()过滤函数

filter函数

filter()函数可以对序列做过滤处理,就是说可以使用一个自定的函数过滤一个序列,把序列的每一项传到自定义的过滤函数里处理,并返回结果做过滤。最终一次性返回过滤后的结果。

filter()函数有两个参数:

  • 自定函数名,必须
  • 需要过滤的列,必须

DEMO

需求,过滤大于5小于10的数

# coding=utf8
# 定义大于5小于10的函数
def guolvhanshu(num):
  if num>5 and num<10:
    return num
 
# 定义一个序列
seq=(12,50,8,17,65,14,9,6,14,5)
 
# 使用filter函数
result=filter(guolvhanshu,seq)
 
# Output: (8,9,6)
print result

...

READ ALL

Python字符串与数字拼接报错

Python不像JavaScript或者PHP这种弱类型语言里在字符串连接时会自动转换类型,而是直接报错。要解决这个方法只有提前把int转成string,然后再拼接字符串即可。

如代码:

# coding=utf8
str = '你的分数是:'
num = 82
text = str + num + '分 | Nicholas Lee'
print text 

这段程序会报错

TypeError: cannot concatenate 'str' and 'int' objects

错误原因是类型不匹配,解决这个方法只有提前把num转换为字符串类型,可以使用bytes函数把int型转换为string型。

...

READ ALL

wamp项目移到Linux下惨痛调错经历

正在做一个基于ZendFramework的项目,要从wamp平台移植到lnmp平台。于是我在VMware上安装了一个CentOS6,并且编译安装了Nginx + php-fpm + MySQL环境。

出现问题

在看到phpinfo()界面以后,赶紧配置Nginx的虚拟主机,把ZendFramework项目上传到CentOS里。正常打开项目,但登录后就出现在项目主页与登录界面两个页面之间无限死循环跳转,跳转间隔大约一到两秒,整个页面都是空白,没有任何字符与报错提示。

没有开启URL重写规则?

因为我在项目下发现有点.htaccess文件,所以就直接认定可能是因为.htaccess文件里可能写了什么东西,没有被Nginx解析到,所以出现无限死循环跳转情况。.htaccess文件时Apache动态加载配置文件,只要放在站点根目录下,就会自动被解析,并且不需要重新启动Apache服务。

...

READ ALL

Win7下Eclipse中文字体太小解决方案

今天安装Eclipse + PyDev准备写写Python,却发现中文字在Eclipse下非常难看。这是由于Eclipse用的字体是Consolas,英文还可以,中文就惨不忍睹。

换一种字体

下载字体好看的中文字体,这里推荐下载YaHei.Consolas

设置Eclipse

点击 window -> Preferences

full

Appearance -> Colors and Font -> Basic -> Text Font -> Edit

full

...

READ ALL

IE部分版本JavaScript获取ID不区分大小写

昨天做一个JavaScript与Flash交互项目,在其它浏览器都正常运行,唯独IE6、IE7、部分的版本IE8报错。查了很久代码,也未发现是哪里的问题。于是开始逐行try...catch,结果在window.document.video这一句报错了。

IE不区分大小写导致

video是Flash的ID,为什么其它浏览器不报错,偏偏这里报错呢?经查,发现页面也有一个div标签,id为Video,难道是大小写的问题?于是把页面div标签id改为video,问题解决。

做DEMO验证

难道IE对标签属性值不区分大小写吗?于是我自己做了一个测试。

...

READ ALL