基本上每个linux都安装有python,几乎每个unix也安装有python,包括苹果的OS。android。
网站的建设成都创新互联专注网站定制,经验丰富,不做模板,主营网站定制开发.小程序定制开发,H5页面制作!给你焕然一新的设计体验!已为成都格栅板等企业提供专业服务。
windows下通常安装包都比较健壮。应该用得也很多。如果你安装出现问题往往是因为这个模块没有提供windows下的安装包。你可以查一下unoffice python module(好象是这个名子),里面有些包是别人编译好的,可以直接用。
主要问题还是windows使用的编译器是visual studio。而linux , unix很多都是兼容gcc的。象windows这样没有unix血统的操作系统,现在已经很少了,大规模使用仅仅微软一家支持。其它的厂商大多都有unix的传承与习惯。所以windows与unix之间的问题就显得比较的突出。
linux下命令行比较方便。不过图形界面并不是很强大。windows的图形界面通常好。另外windows下的游戏也特别好。 如果你开发游戏通常只能在windows下做了。手机除外。
linux下的python通常比较的强大,因为它的包,它的工作方式通常会比较的流畅。象管道,事件,共享内存等等都比较容易使用。
要看你的数据库里存的是什么格式的,如果是unicode的话:
sql="select * from t.branch where name='河南'".decode('utf8')
如果是gb系列编码的话:
sql="select * from t.branch where name='河南'".decode('utf8').encode('gb18030')
在 Python 语言环境下我们这样连接数据库。
In [1]: from mysql import connector
In [2]: cnx = connector.connect(host="172.16.192.100",port=3306,user="appuser",password="xxxxxx")
但是连接数据库的背后发生了什么呢?
答案
当我们通过驱动程序(mysql-connector-python,pymysql)连接 MySQL 服务端的时候,就是把连接参数传递给驱动程序,驱动程序再根据参数会发起到 MySQL 服务端的 TCP 连接。当 TCP 连接建立之后驱动程序与服务端之间会按特定的格式和次序交换数据包,数据包的格式和发送次序由 MySQL 协议 规定。MySQL 协议:整个连接的过程中 MySQL 服务端与驱动程序之间,按如下的次序发送了这些包。
MySQL 服务端向客户端发送一个握手包,包里记录了 MySQL-Server 的版本,默认的授权插件,密码盐值(auth-data)。
2. MySQL 客户端发出 ssl 连接请求包(如果有必要的话)。
3. MySQL 客户端发出握手包的响应包,这个包时记录了用户名,密码加密后的串,客户端属性,等等其它信息。
4. MySQL 服务端发出响应包,这个包里记录了登录是否成功,如果没有成功也会给出错误信息。
cursor.execute(sql)应该是不返回的,要想看结果应该是cursor.fetchall()。
conn = pymysql.connect(host='127.0.0.1',port = 3306,user='user',passwd='pass',db ='db',charset="utf8")
try:
with conn.cursor() as cursor:
cursor.execute(sql)
return cursor.fetchall()
finally:
conn.close()