|Flask Web开发-数据库

Posted 多德伟

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了|Flask Web开发-数据库相关的知识,希望对你有一定的参考价值。

你不一定要点蓝字关注我的


写在前面

笔记本白屏捣鼓一下午没修好,晚上封管子火焰枪回火炸了,没把我吓死!


周末就不该干活!!心态崩了!

数据库按照一定的规则保存程序数据,程序再发起查询取回所需的数据.web程序最常用基于关系模型的数据库,这种数据库也称为SQL数据库,因为他们使用结构化查询语言.


5.1SQL数据库

关系型数据库将数据存储在表中,标模拟程序中不同的实体.


表的列数是固定的,行数是可变的.

列定义表所表示的实体的数据属性.

表中有个特殊的列,被称为主键,其值为表中各行的唯一标识符.

表中还可以有称为外键的列,引用同一个表或不同表中某行的主键.

 

关系型数据库存储数据很高效,而且避免了重复.将这个数据库中的用户角色重命名也很简单,因为角色名只出现在一个地方.


5.2NoSQL数据库

NoSQL数据库一般使用集合代替表,使用文档代替记录.使用这种数据查询模式,角色重命名操作就会变得很耗时,可能需要更新大量文档.但是数据重复可以提高查询速度.


5.3使用SQL还是NoSQL

SQL数据库擅长用高效且紧凑的形式存储结构化数据.这种数据库需要花费大量精力保证数据的一致性,NoSQL数据库放宽了对这种一致性的要求,从而获得性能上的优势.


5.4Python数据库框架

在常用数据库引擎都满足不了需求的时候,可以选择数据库框架,选择时需要注意:


易用性

性能

可移植性

Flask集成度


5.5使用Flask-SQLAlchemy管理数据库

Flask-SQLAlchemy数据库URL

mysql:mysql://username:password@hostname/database


Postgres:postgresql:// username:password@hostname/database


SQLite(Unix):sqlite:////absolute/path/to/database


SQLite(windows):sqlite:///c:/absolute/path/to/database


在这些URL中,hostname表示MySQL服务所在的主机,可以是本地主机(lacalhost),也可以是远程服务器。数据库服务器上可以托管多个数据库,因此database表示使用的数据库名。如果数据库需要认证,username和password表示数据库用户密令。


程序使用数据库URL必须保存到Flask配置对象的SQLALCHEMY_DATABASE_URI中。配置对象中还有一个很有用的选项,即SQLALCHEMY_COMMIT_ON_TEAMDOWN键,将其设为True时,每次请求结束后都会自动提交数据库中的变动。


5.6定义模型

模型这个术语表示程序使用的持久化实体。在ORM中,模型一般是一个Python类,类中的属性对应数据库表中的列。

 

最常用的SQLAlchemy列类型

Integer:普通整数

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

Biginteger:不限制精度的整数

Float:浮点数

Numeric:定点数

String:定长字符串

常用的SQLAlchemy选项

Primary_key/unique/index/nullable/default


5.7关系

关系型数据库使用关系把不同表中的行联系起来。这是角色到用户的一对多的关系,因为一个角色可属于多个用户,而每用户都只能由一个角色。



我今天才知道,我之所以漂泊就是在向你靠近。

--《廊桥遗梦》


以上是关于|Flask Web开发-数据库的主要内容,如果未能解决你的问题,请参考以下文章

《Flask web开发》笔记4:数据库

python web开发-flask中访问请求数据request

Flask web开发之路六

Python+Flask+MysqL的web建设技术开发一个网站

python web开发-flask连接sqlite数据库

flask web开发是前端还是后端