在 flask 中使用 SQLAlchemy

在 flask 中, 很多人喜欢通过 SQLAlchemy 来操作数据库。这种情况下推荐使用包代替模块, 把数据模型剥离到一个独立的模块中。这样的做法不是必须的, 但是更加合理。

Flask-SQLAlchemy Extension

SQLAlchemy 是一个通用的数据库抽象层和 ORM, 它需要一些额外的配置, Flask 中有一个扩展来处理这些。

Declarative

SQLAchemy 中的 declarative extension 是最近出现的一种方法。这种方法允许你一次性定义表单和数据模型, 这和 Django 的工作方式类似。

下面是一个database.py模块的例子:

我们自己定义的数据模型只需要继承上面代码中的Base就可以了。这个地方不用担心线程安全的问题,因为 SQLAlchemy 已经通过scoped_session帮我们处理了。

我们只需要把下面的代码放入我们的应用模块中就可以以 declarative 的方式来使用 SQLAlchemy 了。Flask 会在 request 结束或者应用退出时自动关闭 session:

下面的代码是一个数据模型的例子(可以放入 models.py中, e.g.):

创建数据库的时候可以使用init_db():

向数据库中插入记录:

查询也很简单:

注: 本文翻译自官方文档 http://flask.pocoo.org/docs/0.12/patterns/sqlalchemy/

本文来自企鹅号 - 全球大搜罗媒体

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏北京马哥教育

用 Python 搞定正方教务系统之抢课篇

最近学校开始选课,但是如果选课时间与自己的事情冲突,这时候就可以使用Python脚本自助抢课,抢课的第一步即是模拟登录,需要模拟登录后保存登录信息然后再进行操作...

610
来自专栏Python中文社区

用Python模拟登录学校教务系统抢课

-- Illustrations by Vladislav Solovjov --

1052
来自专栏微信小程序开发

如何使用vue开发一个登录注册组件

本文作者:端,映客的一位前端开发。 要开发某个功能我们就要去思考这个功能怎样实现最快捷最方便,下面以项目中的登录注册组件为例说明 一个功能要尽可能的去拆分比如这...

3588
来自专栏张戈的专栏

PHP制作百度站内搜索绿色通道的网页列表数据文件

用过百度站内搜索的朋友,都知道前不久推出了一个绿色收录通道,改善站内搜索的时效性和覆盖率,说明如下: 站内搜索结果数太少?最新的页面搜不到?您可以在本页面提交数...

3447
来自专栏施炯的IoT开发专栏

课程上线 -“新手入门 : Windows Phone 8.1 开发”

经过近1个月的准备和录制,“新手入门 : Windows Phone 8.1 开发”系列课程已经在Microsoft 虚拟学院上线,链接地址为:http://w...

1738
来自专栏微服务那些事儿

SpringCloud与elastic-job集成(一)

在项目初期,基于quartz我们做了一个原始的job调度服务,用以执行我们的定时任务,但是随着业务的扩充,对性能及稳定性有了更高的要求.

6679
来自专栏移动端周边技术扩展

应用开发者需要更新此应用以使其在iOS11下正常工作iOS11.0体验

7203
来自专栏前端大白专栏

Error: Cannot match any routes. URL Segment: 'public' 困扰一个下午的问题

1926
来自专栏FreeBuf

通过Password Vault的XSS漏洞获取用户密码测试

大家好!自我上次写作以来到现在已经有段时间了。今天,我想和大伙分享一些非常有意思的内容。为了存储及管理的方便,相信大家可能都会选择使用一些密码管理器来存储不同网...

663
来自专栏姬小光

姬小光前端小讲堂【第006期】

在前几期的成果中,我们做出来的页面只有一些“静态”的内容,只能给用户大眼瞪小眼的看,那么别人家的网页上那些飞来飞去的,若隐若现的东西都是咋搞的呢?

592

扫码关注云+社区