flask 数据库一节笔记
笔记一:
os.path的用法:
1. os.path.dirname(__file__) 返回当前脚本的执行路径,__file__为固定参数
2. os.path.abspath(file) 返回文件在当前环境中的绝对路径
3. os.path.join(basedir, file) 将file的路径设置为basedir所在的路径
笔记二:
Flask_SQLAlchemy数据库URL:
MySQL mysql://username:password@hostname/database
SQLite(Unix) sqlite:////absolute/path/to/database
SQLite(Windows) sqlite:///c:/absolute/path/to/database
笔记三:
常用的SQLAlchemy列类型如下:
Integer int 普通整数
Float float 浮点型
String str 变长字符串
Text str 做优化的变长字符串
Boolean bool 布尔值
Date datetime.date 日期
Time datatime.time 时间
Interval datetime.timedelta 时间间隔
SQLAlchemy列配置选项:
primary_key 如果为True,这列就是主键
unique 如果为True,这列不允许出现重复值
index 如果为True,这列创建索引,提升查询效率
nullable 如果为True,这列允许出现空值
dafault 为这列定义默认值
笔记四:
__repr__方法用于显示值,相似方法还有__str__,但前者更偏向开发人员(准确性),后者更偏向用户
笔记五:
imp是标准库模块,可以对模块进行创建、载入等操作,可以用exec执行模块文件
笔记六:
可使用db.relationship()把数据库的不同行联系起来,建立一对多的关系,db.relationship()的第一个
参数表明关系的另一端是哪个模型,其他可选参数如下:
backref 在关系的另一个模型中添加反向引用
primaryjoin 明确两个模型之间使用的联结条件
lazy 指定如何加载相关记录,可选值有select(首次访问时加载)、immediate(源对象加载后加载)、
joined(加载记录,但使用联结)、subquery(立即加载,但使用子查询),noload(永不加载)、
dynamic(不加载记录,但提供加载记录的查询)
uselist 如果设为False,不适用列表而使用标量
order_by 指定关系中记录的排序方式
secondary 指定多对多关系中关系表的名字
secondaryjoin 指定多对多关系中的二级联结条件
用SQLAlchemy管理数据库的步骤:
1. 配置数据库:
①设置数据库SQLALCHEMY_DATABASE_URI (必须)
②设置数据库迁移文件路径SQLALCHEMY_MIGRATE_REPO(自动更新数据库变动)
2. 初始化数据库(用SQLAlchemy()创建一个db对象)
3. 创建数据库模型
用类来创建数据库模型,用__repr__方法打印类的对象,便于调试
4. 创建数据库
用SQLAlchemy_migrate创建支持升级的数据库
从migrate.versioning导入api
api.create()
api.version_control()
5. 创建迁移脚本
...
使用migrate.versioning模块api方法的upgrate()升级数据库,downgrate()回退数据库
6. 建立数据库中表的对应关系
用db.relationship()、外键等建立关系
7. 用session会话对数据库进行操作,最后必须使用db.session.commit()才生效
db.session.add() 更改
db.session.delete() 删除行
query.all() 查询,可使用过滤器filter_by进行更精确查询
flask 数据库一节笔记的更多相关文章
- 实验3、Flask数据库操作-如何使用Flask与数据库
1. 实验内容 数据库的使用对于可交互的Web应用程序是极其重要的,本节我们主要学习如何与各种主要数据库进行连接和使用,以及ORM的使用 2. 实验要点 掌握Flask对于各种主要数据库的连接方法 掌 ...
- mySQl数据库的学习笔记
mySQl数据库的学习笔记... ------------------ Dos命令--先在记事本中写.然后再粘贴到Dos中去 -------------------------------- mySQ ...
- Mysql数据库基础学习笔记
Mysql数据库基础学习笔记 1.mysql查看当前登录的账户名以及数据库 一.单表查询 1.创建数据库yuzly,创建表fruits 创建表 ) ) ,) NOT NULL,PRIMARY KEY( ...
- 天兔(Lepus)数据库监控系统安装笔记
天兔(Lepus)数据库监控系统安装笔记 一.部署:本次操作系统:centos6.9 IP:192.168.153.145Lepus_v3.8_beta MySQL-python-1.2.5xampp ...
- 数据库MySQL学习笔记高级篇
数据库MySQL学习笔记高级篇 写在前面 学习链接:数据库 MySQL 视频教程全集 1. mysql的架构介绍 mysql简介 概述 高级Mysql 完整的mysql优化需要很深的功底,大公司甚至有 ...
- Oracle数据库备份还原笔记
Oracle数据库备份还原笔记 通过查阅资料知道Oracle备份还原的方式有三种.分别的是导出/导入.热备份和冷备份.导出/导入是一种逻辑备份.而热备份和冷备份是物理备份.[参考资料(https:// ...
- Flask RESTful API搭建笔记
之前半年时间,来到项目的时候,已经有一些东西,大致就是IIS+MYSQL+PHP. 所以接着做,修修补补,Android/iOS与服务器数据库交换用PHP, Web那边则是JS+PHP,也没有前后端之 ...
- 测试Flask应用_学习笔记
源代码尽在我的github上面:https://github.com/521xueweihan 欢迎大家交流学习 """ setUp() 方法中会创建一个新的测试客户端并 ...
- 细说flask数据库迁移
什么情况下要用数据库迁移? 在开发过程中,需要修改数据库模型,而且还要在修改之后更新数据库.最直接的方式就是删除旧表,但这样会丢失数据. 更好的解决办法是使用数据库迁移框架,它可以追踪数据库模式的变化 ...
随机推荐
- Spring高级特性之四:FactoryBean和BeanFactory
FactoryBean和BeanFactory两只是两个单词顺序不同但是内容大不相同.落脚点在后面一个单词,前面一个单词是其功能描述:FactoryBean--工厂bean,一个建工厂的bean?Be ...
- 利用DP-SSL对少量的标记样本进行有效的半监督学习
作者 | Doreen 01 介绍 深度学习之所以能在图像分类.自然语言处理等方面取得巨大成功的原因在于大量的训练数据得到了高质量的标注. 然而在一些极其复杂的场景(例如:无人驾驶)中会产生海量的数据 ...
- 聊聊几个阿里 P8、P9 程序员的故事
大家好,我是对白. 阿里 P8 程序员年薪百万已经是公开的秘密了,有人关心他们年薪百万,而我更加关注阿里这些 P8.P9 程序员的成长故事,在聊这些大牛的故事之前,跟大家稍微简单聊下阿里技术人等级制度 ...
- 关于 Xcode 更新 appleID 更换
可能不少人会遇到 前一位同事走之后,他的 appID帐号下载的东西更新不了 下面给予大家一个解决办法 例如 Xcode 1.打开引用程序目录 2.找到Xcode,右键"显示包内容&quo ...
- 关于Windows安装两个不同版本的MySQL详细步骤
关于Windows安装两个不同版本的MySQL详细步骤 安装两个不同版本的数据库原因 由于大部分教程所使用的数据库为5.7版本,而我之前安装的是8.0版本. 在一些特殊情况下,低版本数据库不能动,高版 ...
- Android SugarORM(2)
Android Sugar ORM (2) Android Sugar ORM 实体 1. 创建一个实体类 Sugar ORM在创建一个实体的时候, 仅需要使这个实体类继承于SugarRecord即可 ...
- k8s中prometheus监控k8s外mysql
k8s外安装mysql https://www.cnblogs.com/uncleyong/p/10739530.html 配置MySQL Exporter采集MySQL监控数据 创建yaml文件:v ...
- RFC2899广播吞吐量测试——网络测试仪实操
一.简介 RFC 2889为LAN交换设备的基准测试提供了方法学,它将RFC 2544中为网络互联设备基准测试所定义的方法学扩展到了交换设备,提供了交换机转发性能(Forwarding Perform ...
- Pytorch AdaptivePooing操作转Pooling操作
Pytorch AdaptivePooing操作转Pooling操作 多数的前向推理框架不支持AdaptivePooing操作,此时需要将AdaptivePooing操作转换为普通的Pooling操作 ...
- UML类图的补充及软件设计原则
UML类图的补充及软件设计原则 UML 从目标系统的不同角度出发,定义了用例图.类图.对象图.状态图.活动图.时序图.协作图.构件图.部署图等 9 种图. 1.uml补充 统一建模语言(Unified ...