具体ORM的详细说明可以看 这里http://baike.baidu.com/view/197951.htm
ORM方法论基于三个核心原则:
简单:以最基本的形式建模数据。
传达性:数据库结构被任何人都能理解的语言文档化。
精确性:基于数据模型创建正确标准化了的结构。
现在来看看SQLAlchemy使用方法
1、连接数据库create_engine()
如我连接的是mysql数据库
db_config = { 'host': 'xxx.xxx.xxx.xx', 'user': 'root', 'passwd': 'xxxxxxxx', 'db':'test', 'charset':'utf8' } engine = create_engine('mysql://%s:%s@%s/%s?charset=%s'%(db_config['user'], db_config['passwd'], db_config['host'], db_config['db'], db_config['charset']), echo=True)
2、字段和数据类型及操作方法
在sqlalchemy.schema包里有数据库关系的描述,列举几个最常用的:
字段:Column
索引:Index
表:Table
数据类型在sqlalchemy.types包,列举几个最常用的:
二进制:BIGINT
布尔:BOOLEAN
字符:CHAR
可变字符:VARCHAR
日期:DATETIME
操作方法在sqlalchemy.sql包里,列举几个最常用的:
execute,update,insert,select,delete,join等
3、创建表结构
例:创建名为users的表,有四个字段:id,name,fullname,password
String在mysql里其实就是varchar
metadata = MetaData() users_table = Table('users', metadata, Column('id', Integer, primary_key=True), Column('name', String(50)), Column('fullname', String(50)), Column('password', String(100)) ) metadata.create_all(engine)
4、创建映射关系
1 from sqlalchemy.orm import mapper 2 metadata = MetaData(engine) 3 users_table = Table('users', metadata, autoload=True) 4 print users_table.columns
5、插入并显示数据
1 insert = users_table.insert() 2 insert.execute(name='leon', fullname='leon liang', password='leon123') 3 mapper(User, users_table) 4 5 ed_user=User('crackpot','Crackpot','password') 6 print 'username:', ed_user.name 7 print 'fullname:', ed_user.fullname 8 print 'password:', ed_user.password 9 print 'id:', str(ed_user.id)
到此为止,一个简单的最基础的操作SQLAlchemy 学习结束了,使用ORM,可以让程序员更多的去关注实现逻辑而不用花太多时间去写SQL语句,可能使用项目代码更规范,多个协同开发时更能体现这点好处,而且直接写SQL语句也容易出错,大中型的项目推荐使用ORM。