参考:peewee
Date:2012-12-06
1.安装
首先需要安装python-mysql
然后pip install peewee
安装peewee
2.连接mysql
启动mysql服务器.
进入mysql : mysql -uroot -p
建立数据库 create database mydb default character set = utf8 ;
(其中设定了mydb默认编码为utf8编码)
#--*-- coding:utf-8 --*-- from peewee import * mysql_db = MySQLDatabase("mydb", user = "root", passwd = "123456") mysql_db.connect() #连接数据库 print mysql_db.get_conn() #获取数据库连接
不过,get_conn()不止是获取数据库连接:如果没有连接存在,新建一个。
所以我们可以使用get_conn()来实现单例数据库连接.
可以看到,两次使用建立connect()函数建立的并不是一个连接:
>>> from peewee import MySQLDatabase >>> mysql_db=MySQLDatabase('mydb',user='root',passwd='123456') >>> mysql_db.connect() # 第一次 >>> mysql_db.get_conn() <_mysql.connection open to 'localhost' at 8818204> >>> mysql_db.connect() # 第二次 >>> mysql_db.get_conn() <_mysql.connection open to 'localhost' at 8830e74>
另外,MySQLDatabase类还支持的初始化参数有host(字符串参数), port(数字参数), charset(字符串参数,多用"utf8")等连接MySQL服务的参数
3.建表
orm的理念是一个表对应于一个类, 字段对应于类的属性
#--*-- coding:utf-8 --*-- from peewee import * mysql_db = MySQLDatabase("mydb", user = "root", passwd = "123456", charset = "utf8") mysql_db.connect() #连接数据库 class MySQLModel(Model): class Meta: database = mysql_db class User(MySQLModel): #类的小写即表名 username = CharField() #字段声明 email = CharField() User.create_table() #建表, 其实create_table是一个类方法,但也可以被其实例调用
现在可以看下mysql:
mysql> desc user; +----------+--------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +----------+--------------+------+-----+---------+----------------+ | id | int(11) | NO | PRI | NULL | auto_increment | | username | varchar(255) | NO | | NULL | | | email | varchar(255) | NO | | NULL | | +----------+--------------+------+-----+---------+----------------+ 3 rows in set (0.00 sec)
会发现自动添加了一个自增主键id
4.CURD
create
User.create(username=unicode("小红", "utf8"), email = "someuser@github.com")
或者
>>> user=User() >>> user.username=unicode("小红","utf8") >>> user.email="someuser@github.com" >>> user.save()
update
可以象上面一样使用user.save()
方法来更新.如果想更新多条, 使用类UpdateQuery
注:写的有点烦了,明天继续 .2012-12-06