1. 创建映射类的实例(Instance)
前面介绍了如何将数据库实体表映射到Python类上,下面我们可以创建这个类的一个实例(Instance),我们还是以前一篇文章的User类为例,让我们创建User对象:
等等,你还没有说明白为什么id这个属性会为None值呢。呵呵,其实我们现在并没有将数据插入数据库,一般主键这个属性会在插入数据库时自动产生一个不重复的值以保证唯一性。由于我们没有对对象实行持久化(Persist) (所谓的持久化就是把对象数据按照映射关系存储入数据库里) 所以这里id值为None。别着急,稍后当我们介绍将数据持久化后你就可以看到一个新的自动产生的id了。
接下来小偷懒一下,介绍一个偷懒的技巧:-)
假如我们不定义映射类的构造方法__init__()会带来什么不良影响吗?完全不会,SQLAlchemy为我们考虑到这点,假如我们偷懒将先前的User类定义成这样:
2. 创建并使用会话(Session)
到这里可谓是“万事俱备,只欠东风了”,用官方文档的话说“我们现在已经准备好和数据库‘交谈'了” (We're now ready to start talking to the database)。ORM的操作句柄(Handle)被称为会话(Session)。为了使用会话,我们需要先配置它,配置Session的代码语句应该和create_engine()创建引擎的代码语句在一个代码级别上(放在一起就行了)。
比如我们利用create_engine()先建立起引擎名字为engine(关于引擎的建立代码可以参考我第一篇文章),然后利用sessionmaker()工厂函数建立起Session类,同时绑定我们现有的引擎,比如代码如下:
到这里会话的建立就讲解完了,接下来会讲解真正的ORM数据库查询部分,欢迎关注!
</div>
