flask笔记07
数据库简介
当我们的flask遇到一些需求大容量,高性能,可拓展的功能时,传统的文件格式就捉襟见肘了。
这时我们就要应用到数据库了。
数据库有以下几个优点:
- 持久化存储
- 读写速度极高
- 保证数据的有效性
- 对程序支持性非常好,容易扩展
数据库的几个定义
- 字段:数据库的列
- 记录:数据库的行
- 数据表:数据行的集合
- 数据库:数据表的集合
mysql的安装
第一步,下载安装phpstudy
第二步,在phpstudy里面下载环境mysql
第三步,复制,phpstudy里的mysql的path,添加环境变量
第四步,安装sqlyog,然后配置。
原生sql语句编写
我们编写一个信息表来举例。
创建新的数据库
选择字符集与排序规则
创建新的表格
引擎:最好的选择时InnoDB
SQLALchemy介绍
sqlalchemy是一个python包,它是一个数据库的ORM框架,
我们可以使用ORM来直接操作数据库,而不需要使用繁琐复杂的sql的原生语句。
我们下面来实操一下
首先在sqlyog里面创建一个数据表
然后到pycharm中编写代码。
from sqlalchemy import create_engine
HOSTNAME = '127.0.0.1'
PORT = '3306'
DATABASE = 'mytest'
USERNAME = 'root'
PASSWORD = 'root'
DB_URI = 'mysql+pymysql://{}:{}@{}:{}/{}'.format(USERNAME,PASSWORD,HOSTNAME,PORT,DATABASE)
engine = create_engine(DB_URI)
with engine.connect() as con:
result = con.execute('select * from stutable')
print(result.fetchone())
print(result.fetchone())
print(result.fetchone())
1,PORT:数据库端口号,一般就是3306,不建议改变。
2,DATABASE:连接手机库的名字
3,USERNAME:连接数据库的用户名。
4,PASSWORD:连接数据库的密码。
5,DB_URI:这是生成引擎是的需要的一个字符串由前面几个参数组成。
这段代码的执行结果是:
(1000, ‘海绵宝宝’)
(1001, ‘派大星’)
(1002, ‘章鱼哥’)
我们再来使用它来执行几句mysql原生语句。
con.execute('drop table if exists stutable')
如果表‘stutable’存在则删除它。
该数据表确实被删除了。
con.execute('create table stutable(id int primary key auto_increment,name varchar(25))')
创建一个数据表,id为int型、主键、自增,name为varchar型、长度为25.
con.execute('insert into stutable(name) values("蟹老板")')
con.execute('insert into stutable(name) values("痞老板")')
向表’stutable‘内的name字段添加记录’蟹老板‘和’痞老板‘
添加成功了
results = con.execute('select * from stutable')
for result in results:
print(result)
遍历sql表的数据
结果:
(1, '蟹老板')
(2, '痞老板')
esults = con.execute('select * from stutable')
for result in results:
print(result)
遍历sql表的数据
结果:
(1, ‘蟹老板’)
(2, ‘痞老板’)