喜欢的话关注收藏评论转发比心么么哒!Python学习交流企鹅群526929231内有大量的项目开发和新手教学视频PDF书籍的五千人大群等着你来加入
安装
需要先安装mysql开发库的。
操作
创建SQLALchemy 对象, 然后再 绑定Flask
指定SQLALchemy URI
定义模型
使用 ORM 就肯定要定义对象的
从这两个例子可以看到,定义一列是需要使用 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使用之前需要先创建表和数据库才能操作数据。 所以第一步是创建表:
插入数据
这里需要提一下的就是 db.session,这个 session 是数据库中 事务的含义,因此我们可以提交修改数据,也可以回滚取消修改。
修改数据
修改只需要修改属性并提交就行了。
删除数据
删除数据直接调用 delete 方法即可,记得 commit。
查询数据
查询数据稍微复杂一下
获得查询对象
添加过滤条件
如果还有其他分组之类的,继续添加
这里的 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 对象,它包含指定范围内的结果