一、Python标准数据库接口DB-API介绍
Python标准数据库接口为 Python DB-API,它为开发人员提供了数据库应用编程接口。Python DB-API支持很多种的数据库,你可以选择跟自己项目
相关的数据库。Python DB-API支持的数据库包括,GadFly,MySQL,Oracle,PostgreSQL,Redis等数据库,不同的数据库你需要下载不同的DB API
模块,例如你需要访问Oracle数据库和Mysql数据,你需要下载Oracle和MySQL数据库模块。Python的DB-API,为大多数的数据库实现了接口,使用
它连接各数据库后,就可以用相同的方式操作各数据库。下面会对Python操作MySQL和Redis进行详细介绍
Python DB-API使用流程:
1、引入API模块
2、获取与数据库连接
3、执行SQL语句和存储过程
4、关闭数据库连接
二、Python操作MySQL
1、连接mysql,ip,端口,用户,密码,数据库,使用connect方法,端口一定要是int类型
2、建立游标
3、执行sql
4、获取结果
5、关闭游标
6、关闭数据库连接
注:charset必须写uft8不能写utf-8,否则会报错,还需要导入import pymysql模块
三、Python操作MySQL常用函数总结
connect():创建数据库连接,里面可以指定参数:用户名,密码,主机等信息。这只是连接到了数据库,要想操作数据库需要创建游标。
cursor():创建游标,通俗理解,可以把数据库看成一个仓库,而游标是这个仓库的管理员,你想要仓库里面的东西,或者想进仓库执行什么操作,管理
员帮你去干
commit():如果是insert,delete,udate操作需要执行commit提交操作,没有提交操作,数据库默认回滚
rollback():回滚
cursor用来执行命令的方法:
1、callproc(self, procname, args):用来执行存储过程,接收的参数为存储过程名和参数列表,返回值为受影响的行数
2、execute(self, query, args):执行单条sql语句,接收的参数为sql语句本身和使用的参数列表,返回值为受影响的行数
3、executemany(self, query, args):执行单条sql语句,但是重复执行参数列表里的参数,返回值为受影响的行数
cursor用来获取返回结果的方法:
1、fetchall(self):接收sql语句执行的所有结果,把所有结果放在一个元组里,每一条数据是一个元组
2、fetchone(self):返回一条结果行,结果是一个一维元组,到底读取的是哪条数据,和游标的位置有关系
备注:如果游标指定返回的字典,conn.cursor(cursor=pymysql.cursors.DictCursor),那么获取返回值函数返回的是列表,每条数据是是一个字典
cursor用来移动游标的方法:
1、scroll(self, value, mode='relative'):移动指针到某一行.如果mode='relative',则表示从当前所在行移动value条,如果 mode='absolute',则表示从结果集的
第一行移动value条
如果有目录层级的怎么添加K和V呢,需要在key前面加上目录名
四、Python操作Redis
1)String操作
Redis中的String在内存中按照K-V形式来存储的,一个name对应一个value来存储,set ,get, delete, setex 方法都是针对string类型的
2)Hash类型
Redis中的Hash 在内存中类似于一个name对应一个dic来存储,且Hase类型没有过期时间
练习题:Redis迁移
封装MySQL和redis
if __name__=='__main__':作用:自己测试调试的时候用,别人在引用这个Python文件时if __name__=='__main__':下面的代码是不会被执行的
五、接口开发
开发接口需要使用FlaskWeb框架,它是用Python实现的。Flask显著的特点是:它是一个“微”框架。”微”意味着Flask旨在保持核心的简单,但同时又易于
扩展。默认情况下,Flask 不包含数据库抽象层、表单验证,或是其它任何已有多种库可以胜任的功能。然而,Flask 支持用扩展来给应用添加这些功能。
众多的扩展提供了数据库集成、表单验证、上传处理、各种各样的开放认证技术等功能。Flask的这些特性,使得它在Web开发方面变得非常流行。
普通的函数怎么绑定成服务里面的方法,在函数的前面加上装饰器@服务名.route,装饰器里面填请求的路径和请求的方式
那么有关联关系的接口怎么写呢,比如在京东购物,想要加入购物车,或者是想要支付,必须得前登陆 ,像这种依赖登录接口才能进行其他操作。那用户
登录了是怎么校验用户状态的,怎么能知道用户登录没登录,通过sessions,获取sessions有两种方法,一种是使用cookie获取,一种是用户传入
1、前判断用户是否存在,如果用户存在往redis写入session,并返回
2、利用session和用户名判断用户是否正常登录
从cookie获取sessions
六、浏览器中set cookie
浏览器中查看本地cookie,开发者工具->Application->cookie