月薪40K程序员为你带来Flask三分钟全面了解操作数据库的神级操作

月薪40K程序员为你带来Flask三分钟全面了解操作数据库的神级操作

喜欢的话关注收藏评论转发比心么么哒!Python学习交流企鹅群526929231内有大量的项目开发和新手教学视频PDF书籍的五千人大群等着你来加入

安装

月薪40K程序员为你带来Flask三分钟全面了解操作数据库的神级操作

需要先安装mysql开发库的。

操作

创建SQLALchemy 对象, 然后再 绑定Flask

月薪40K程序员为你带来Flask三分钟全面了解操作数据库的神级操作

指定SQLALchemy URI

月薪40K程序员为你带来Flask三分钟全面了解操作数据库的神级操作

定义模型

使用 ORM 就肯定要定义对象的

月薪40K程序员为你带来Flask三分钟全面了解操作数据库的神级操作

从这两个例子可以看到,定义一列是需要使用 db.Column 的,然后需要指定数据类型,还有列的选项,常用的数据类型有:

类型名Python 类型说明Integerint普通整数,一般是32位SmallIntegerint取值范围小的整数,一般是 16 位BigIntegerint 或 long不限制精度的整数Floatfloat浮点数Numericdecimal.Decimal定点数Stringstr变长字符串Textstr编程字符串,对较长或不限长度的字符串做了优化Unicodeunicode变长 Unicode 字符串UnicodeTextunicode变长 Unicode 字符串,对较长或不限长度的字符串做了优化Booleanbool布尔值Datedatetime.date日期Timedatetime.time时间DateTimedatetime.datetime日期和时间Intervaldatetime.timedelta时间间隔Enumstr一组字符串PickleType任何 python 对象自动使用 Pickle 序列化LargeBinarystr二进制文件

而一些常用的 SQLAlchemy

列选项: 选项名说明primary_key如果设为 True,这列就是表的主键unique如果设为 True,这列不允许出现重复的值index如果设为 True,为这列创建索引,提升查询效率nullable如果设为 True,这列允许使用空值,如果设为 False,这列不允许使用空值default为这列定义默认值

数据库操作

数据库的操作不外乎就是增删改查,所以这里就介绍一下增删改查怎么做,和其他 ORM(例如 MongoEngine) 不一样,SQLAlchemy使用之前需要先创建表和数据库才能操作数据。 所以第一步是创建表

月薪40K程序员为你带来Flask三分钟全面了解操作数据库的神级操作

插入数据

月薪40K程序员为你带来Flask三分钟全面了解操作数据库的神级操作

这里需要提一下的就是 db.session,这个 session 是数据库中 事务的含义,因此我们可以提交修改数据,也可以回滚取消修改。

修改数据

月薪40K程序员为你带来Flask三分钟全面了解操作数据库的神级操作

修改只需要修改属性并提交就行了。

删除数据

月薪40K程序员为你带来Flask三分钟全面了解操作数据库的神级操作

删除数据直接调用 delete 方法即可,记得 commit。

查询数据

查询数据稍微复杂一下

  • 获得查询对象

  • 添加过滤条件

  • 如果还有其他分组之类的,继续添加

月薪40K程序员为你带来Flask三分钟全面了解操作数据库的神级操作

这里的 filter_by 叫做过滤器,常用的过滤器有

过滤器说明filter把过滤器添加到原查询上,返回一个新查询filter_by把等值过滤器添加到原查询上,返回一个新查询limit 使用指定的值限制返回的结果数量,返回一个新查询offset便宜原查询返回的结果, 返回一个新查询order_by根据指定条件对原查询结果进行排序,返回一个新查询group_by根据指定条件对原查询结构进行分组,返回一个新查询

如果后面不加.all(),那么其实是不会真正到数据库执行的,类似 all 的执行器还有很多,常用的有:

方法说明all以列表形式返回查询的所有结果first返回查询的第一个结果,如果没有结果,则返回 Nonefirst_or_404返回查询的第一个结果,如果没有结果,则终止请求,返回 404 错误输出get返回指定主键对应的行,如果没有对应的行,则返回 Noneget_or_404返回指定主键对应的行,如果没找到指定的主键,则终止请求,返回 404 错误输出count返回查询结果的数量paginate返回一个 Paginate 对象,它包含指定范围内的结果


分享到:


相關文章: