|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开发-数据库的主要内容,如果未能解决你的问题,请参考以下文章
python web开发-flask中访问请求数据request