Flask 使用Flask-SQLAlchemy操作数据库

本文详细介绍了如何使用Flask-SQLAlchemy库在Python中操作数据库,包括定义模型,如Role和User类,设置数据库字段及关系。内容涵盖创建和删除表,以及增删改查操作,如新增数据、查询、删除和修改数据。同时,文章讨论了数据库模型的配置选项和SQLAlchemy的查询方法,如filter、all()、first()等。
摘要由CSDN通过智能技术生成

《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门,即可获取!

在这些url中,hostname表示数据库所在的主机,可以是本地主机(localhost),也可以是远程服务器。database为要使用的数据库名。username和password表示数据库用户名和密码。

定义模型

在ORM中模型一般是一个python类,类中的属性对应数据库表中的列。如下定义了两个模型Role和User。

User和Role是一对多关系。

class Role(db.Model):

定义表名

tablename = ‘roles’;

db.Column定义属性,db.Integer设置类型,

Primary_key = True设置主键

unique = True设置唯一索引

index = True创建索引,提示查询效率

nullable = True允许为空值

default为这列设置默认值

autoincrement = True自动递增

id = db.Column(db.Integer, primary_key=True, autoincrement=True)

name = db.Column(db.String(64), nullable=False)

定义一个User类

class User(db.Model):

tablename = ‘users’;

id = db.Column(db.Integer, primary_key=True, autoincrement=True);

username = db.Column(db.String(64), unique=True, index=True);

password = db.Column(db.String(64));

建立对应关系

如果是多对多关系就建一张表,关联两个表的id

role_id = db.Column(db.Integer, db.ForeignKey(‘roles.id’))

‘’’

帮助作关联查询

relationship()把两个表关联在一起,不添加也是可以的,根据自己的需求

backref : 在关系的另一模型中添加反向引用

相当于给要关联的表添加一个role属性

不添加也是可以的,根据自己的需求

‘’’

rol = db.relationship(‘Role’, backref=‘use’)

db.Column类构造函数的第一个参数是数据库列和模型属性的类型。如下表是一些常用的列类型

| 类型名 | 说明 |

| — | — |

| Integer | 普通整数,一般是32位 |

| SmallInteger | 取值范围小的整数,一般是16位 |

| Float | 浮点数 |

| Numeric | 定点数 |

| String | 字符串 |

| Text | 文本字符串 |

| Boolean | 布尔值 |

| Date | 日期 |

| Time | 时间 |

| DateTime | 日期和时间 |

db.Column中其余的参数指定属性的配置选项,如下

  • 19
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据引用的内容来看,引用提到了关于数据库的资料准备和选择服务器的问题,而引用提到了使用jsp进行测试的方式,引用则提供了一个关于通信连接的事件类的代码片段。 根据这些信息,对于flask连接数据库的问题,可以考虑以下步骤: 1. 首先,准备好数据库相关的资料,包括数据库的类型、名称、用户名和密码等。 2. 在flask中,可以使用SQLAlchemy这样的库来连接数据库。通过安装SQLAlchemy并导入相应的模块,可以在flask应用程序中轻松地进行数据库操作。 3. 在flask应用程序中,可以根据需要创建一个数据库连接,并配置连接字符串。连接字符串应包含数据库类型、主机名、端口号、数据库名称、用户名和密码等信息。 4. 一旦数据库连接配置完成,就可以使用SQLAlchemy提供的API来执行数据库操作,如查询、插入、更新和删除等操作。 综上所述,要在flask中连接数据库,你需要准备好数据库相关的资料,并使用SQLAlchemy等库进行数据库连接和操作。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [flash与数据库 读取数据库数据](https://blog.csdn.net/truhfcg/article/details/83754526)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值