sqlalchemy整理(一)

来源:互联网 发布:c语言速成手册 编辑:程序博客网 时间:2024/06/04 17:55

http://blog.csdn.net/xluren/article/details/9170431

继续之前的博客,过去一年了,说出来的东西要做到的。

1.创建引擎;

2.创建metadata(绑定引擎,也可以在第四步绑定);

3.创建定义table

4.创建表(如果第二步没有绑定引擎,此处需要绑定引擎)

下面的代码演示了创建表的两种形式,先后绑定引擎

from sqlalchemy.engine import  create_enginefrom sqlalchemy import schema, types#metadata test one#################################engine=create_engine("sqlite:///hello.db",echo=True)metadata = schema.MetaData(engine)page_table = schema.Table('page', metadata,    schema.Column('id', types.Integer, primary_key=True),    schema.Column('name', types.Unicode(255), default=u''),    schema.Column('title', types.Unicode(255), default=u'Untitled Page'),    schema.Column('content', types.Text(), default=u''),)try:    metadata.create_all(checkfirst=False)except:    print "table exist"#metadata test two with bindmetadata=schema.MetaData()artical_table=schema.Table("artical",metadata,    schema.Column("id",types.Integer,primary_key=True),    schema.Column("name",types.Unicode(255),default=u'hello'),    schema.Column("title",types.Unicode(255),default=u'world'),    schema.Column('content',types.TEXT(),default=u'kong'),)metadata.create_all(bind=engine,checkfirst=True)################################################
有个地方是checkfirst=true,会检查表是否存在,如果表不存在的话就创建,如果表存在那么就会忽略创建语句,不报错。



0 0