深入浅出flask(49):flask_sqlalchemy的创建一对多的关系表

caimouse caimouse     2022-12-29     369

关键词:

在我们建立数据库的模型时,使用得最多的就是一对多的关系,比如一个家庭有多个成员,一个学校有多个学生,一个学生有多门成绩。要表示这种关系,往往建立两个表,一个表用来表示一方的数据,另外一个表表示多方的数据。

往往需要在一方这里定义关系,用来表示多方;在多方这里定义外键,用来指向一方的主键。

有了上述的设计原则,就可以进行数据库的设计了,现在来定义一个人员与地址的数据表,人员表用来表示人的姓名,或者说是员工的名称;地址用来表示这个人的住址,由于这个人可能有多个住址,比如临时宿舍的住址,家里联系的地址。所以这个是一对多的关系,因此我们声明数据表的代码如下:

class Person(db.Model):

深入浅出flask(43):flask应用创建配置参数命令

通过前面对click库的学习,以及对Flask应用的cli接口的了解,就可以深入地开发命令行的配置工具,就可以为项目简化数据库的安装和维护,以及自动化地升级数据库。因此接着下来就是使用命令行的工具来创建一个管理数据库... 查看详情

深入浅出flask:flask的蓝图插件化

在开发Flask程序时,经常会发现有很多蓝图需要汇集到一个文件,然后把所有蓝图进行注册,这样才可以使用。比如像下图这样:这样的方式,理解起来可能比较简单,但是对于一个规模大一些的网站,就比较麻烦一些,因为需... 查看详情

深入浅出flask:flask使用请求的全局对象g

在开发flask程序中,经常会遇到这样的需求,也就是同一个请求下有一些数据是共用的,但是由于代码是放在不同的模块中,要使用相同的数据,要么使用参数来传送,要么使用python的全局对象。使用参数来传送会比较麻烦一些... 查看详情

深入浅出flask(42):click库在flask里加载插件命令

在开发的过程中,经常遇到这样的情况,比如有一些插件是由别的厂家开发,或者第三方个人开发,并且不是项目发布时就完成的,这时无法控制命令的个数,也无法控制命令的发布。这时就要想办法动态地添加命令,管理命令... 查看详情

深入浅出flask(47):flask_sqlalchemy的应用动态绑定

前面演示了SQLAlchemy的关系数据库具体操作,并对简单的关系进行了分析,可以看到它对关系的表示非常友好,可以根据关系和反向引用配合,就可以非常方便地操作表与表的关系,并且在代码里没有先后顺序的考虑,而由引擎... 查看详情

深入浅出flask(46):flask_sqlalchemy的简单关系

我们知道使用关系的数据库,最大的优点就是关系的维护。如果不使用关系,就跟保存文件是差不多的。既然我们都使用关系的数据库,就需要利用好关系,因为关系的存在是相互约束和追溯。比如创建一个论坛程序,需要对论... 查看详情

深入浅出flask(51):flask_sqlalchemy的增删查改

前面学习了数据库的设计与建模,接着下来就是要学习对数据库的操作,数据库操作一般归纳四种操作:增加、删除、查找和修改。对于简单关系的表,增加是一个简单的事情,如果是复杂的表就要比较小心,因为更新不对是插... 查看详情

深入浅出flask(48):flask_sqlalchemy的创建表

对于我们使用数据库来说,就是要管理数据,管理数据的关系,确保数据的完整性和一致性。这样才不至于我们把病人与药方搞错,才不会把高考成绩与人名之间搞错。既然想把一些信息使用数据库来管理,就必须理解组织这些... 查看详情

深入浅出flask(52):flask_sqlalchemy的同时连接多个数据库

在开发的过程中,总会遇到复杂的问题,不是想像的那么简单。比如有时候旧的代码是使用SQLite的数据库,现在新的数据库要使用mysql,那么就需要同时连接两个数据库使用。又比如说自己使用的mysql数据库,但是与客户那边进... 查看详情

深入浅出flask:实现日志输出

在开发Flask项目中,首先是读取配置参数,进行各种功能选择,适应不同的环境,比如开发环境和生产环境。接着下来就是实现日志输出,这个功能是必不可少,为什么这样说呢,因为日志可以跟踪整个程序运行过程,如果有什... 查看详情

深入浅出flask:使用ajax与后端交互(代码片段)

在开发flask程序的过程,经常会遇到使用ajax与后端进行交互的过程,比如发送一些数据给后端进行验证,并立即返回结果。可以通过下面的例子来演示flask进行ajax交互的过程,首先编写前端的代码,如下:<!DOCTYPEhtml><html&g... 查看详情

深入浅出flask(50):flask_sqlalchemy的创建多对多的关系表

在数据库的设计里,也会经常遇到多对多的关系,比如一个学生可以选择多门课程,一门课程又可以被多个学生选择。在数据库里设计这种多对多的关系,往往需要引入第三张表来表示这种关系。在SQLAlchemy里创建这种辅助表时... 查看详情

深入浅出flask(39):click库的第一个程序

在开发Flask程序过程中,总需要一些命令行的工具,因为在WEB应用创建之前,需要创建数据库,或者设置配置文件,或者迁移数据库等等工作。如果不是使用命令行的工具来维护这样的操作,就需要使用别的工具来操作,这样没... 查看详情

深入浅出flask:服务器输出304代表什么

正在开发Flask的程序,调试过程中,突然发现输出下面的代码:一般情况下,回复的是200代码,但是这里显示回复304代码,这到底是怎么回事呢?去查看HTTP的代码表示,它介绍如下:304(未修改)    自从上次请求... 查看详情

深入浅出flask:表单验证与ajax交互

在开发flask的程序过程中,经常会遇到提交表单,比如注册、登录、填写数据等等,所以说表单是必须要熟悉的。而表单又有一个验证的问题,比如你输入的注册名称是否符合网站的要求,是否使用合适的字符等等,这些都需要... 查看详情

深入浅出flask(40):click库的创建命令

创建命令首先来学习怎么样把一个python函数变成命令,在click库里使用装饰器@click.command()来实现。如下面的例子:importclick@click.command()defhello():   click.echo(\'HelloWorld!\')在这里就会把函数hello变成命令行里的命令。在这... 查看详情

深入浅出flask:ajaxsubmit函数的返回值

在开发中使用ajaxSubmit与服务器交互的过程中,会发现一些问题,比如怎么样判断后端返回的数据类型,以及怎么样在前端里处理各种类型。在前一文里介绍了表单验证,但是没有具体说明返回类型,在本文里进一步地补充这方... 查看详情

深入理解flask_(美)jackstouffer著pdf

深入理解Flask_(美)JackStouffer著链接:https://pan.baidu.com/s/1HZEpPN8lCBtA-tCFpltCDg密码:2xad 查看详情