专栏首页数据库在 flask 中使用 SQLAlchemy

在 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 条评论
登录 后参与评论

相关文章

  • 普华永道:大中型企业正加速采用公有云

    普华永道日前发布了一份针对企业数据中心采购者的调查报告,被调查的企业一共有235家,并且其中70%的企业年营收超过5亿美元,67%的企业分布在北美市场。同时这些...

    企鹅号小编
  • 机器学习算法分类与其优缺点分析

    机器学习算法的分类是棘手的,有几种合理的分类,他们可以分为生成/识别,参数/非参数,监督/无监督等。 例如,Scikit-Learn的文档页面通过学习机制对算法...

    企鹅号小编
  • C语言在嵌入式系统编程时的注意事项

    C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程...

    企鹅号小编
  • Java的依赖注入(控制反转)

    两个主角“依赖注入”和“控制反转”: 1、二都说的都是同一件事,只是叫法不同。是一个重要的面向对象编程的法则,也是一种设计模式; 2、英文原称:依赖注入,...

    xiangzhihong
  • 7步教你打造你的第一份数据报告

    你是一个在校学生,上着自己喜欢或不喜欢的课,闲来无事,你打开知乎,看到了数据分析话题,你下定决心要成为一个数据分析师,你搞来一堆学习资料和在线课程,看完之后自信...

    华章科技
  • minix文件系统源码分析之bitmap.c(基于linux1.2.13)

    theanarkh
  • 大数据分析流程

    你是一个在校学生,上着自己喜欢或不喜欢的课,闲来无事,你打开知乎,看到了数据分析话题,你下定决心要成为一个数据分析师,你搞来一堆学习资料和在线课程,看完之后自信...

    Spark学习技巧
  • 腾讯笔试题:浅谈计算机中cpu位数和指针

    强制类型转换,就是当传输的源数据和目的数据数量不一样的时候,就需要告诉 CPU 如果数据太多的话哪些数据需要截断。

    机智的程序员小熊
  • 亚马逊抢甲骨文的 Java 饭碗,推出 Corretto

    14 日亚马逊发文宣布 Amazon Corretto 的预览版,这是一个免费的、跨平台生产就绪的 OpenJDK 发行版。

    芋道源码
  • OpenGL ES 2.0 (iOS)[02]:修复三角形的显示

    从图可以看出,这三个数据形成的其实是一个等边直角三角形,而在 iOS 模拟器中通过 OpenGL ES 绘制出来的是直角三角形,所以是有问题的,三角形被拉伸了。

    半纸渊

扫码关注云+社区

领取腾讯云代金券