1、pymysql
import pymysql
#1.链接mysql ip 端口号 账号 密码 数据库
#2.建立游标
#3.执行mysql
#4.获取结果
#5.关闭链接 关闭游标
#大阿凯仓库大门
conn = pymysql.connect(host = ‘211.149.218.16‘,user = ‘jxz‘,passwd = ‘123456‘,port = 3306, db = ‘jxz‘,charset = ‘utf8‘)#charset必须写utf8,不能写utf-8
cur = conn.cursor()#建立游标,游标你就认为是仓库管理员
cur = cur = conn.cursor(cursor=pymysql.cursors.DictCursor)#建立游标,游标你就认为是仓库管理员
# cur.execute(‘show tables;‘)#执行sql语句
# cur.execute(‘select * from bt_stu limit 5;‘)#执行sql语句
#update delete insert 执行完之后需要提交,否则不会生效
#cur.execute("INSERT INTO `bt_stu` ( `real_name`, `sex`, `phone`, `class`, `type`) VALUES ( ‘好人啊‘, ‘1‘, ‘18612541231‘, ‘靠山屯‘, ‘1‘);")#执行sql语句
#conn.commit()#update delete insert 执行完之后需要提交,否则不会生效
sql = ‘select * from bt_stu limit 5;‘
cur.execute(sql)
res = cur.fetchall()#获取sql执行的结果,它把结果放到一个元祖里面,每一条数据也是一个元祖
#res = cur.fetchone()#只获取一条结果,它的结果是个1维元祖 只有一条数使用fetchone,you多条数据使用fetchall
print(res)#打印结果
# cur.scroll(0,module=‘absolute‘)#将游标定位到最前面
# cur.scroll(0,module=‘relative‘)#移动游标,相对当前位置
cur.close()#关闭游标
conn.close()#关闭链接
# 在fetch数据时按照顺序进行,可以使用cursor.scroll(num,mode)来移动游标位置,如:
# cursor.scroll(1,mode=‘relative‘) # 相对当前位置移动
# cursor.scroll(2,mode=‘absolute‘) # 相对绝对位置移动
# 更改fetch数据类型
# 默认获取的数据是元祖类型,如果想要或者字典类型的数据
2、redis操作
import redis
r = redis.Redis(host=‘211.149.218.16‘,port=6379,password=‘123456‘,db=12)
# r.set(‘ybq‘,‘yyy‘)#set数据 增加key、vlue
# r.get(‘ybq‘)#获取数据
# print(r.get(‘ybq‘).decode())#redis里取迟来的数据都是bytes类型的,所以要用decode转成字符串
# r.delete(‘ybq‘)#删除数据
# r.setex(‘ybq‘,‘yyy‘,86400*720)#可以指定key的失效时间,最后一位是时间,单位是秒
#set get delete setex都是针对string类型的
#hash类型
#hash类型的key没有过期时间
# r.hset(‘ybq2‘,‘yyy‘,‘bbb‘)#插入数据
# r.hset(‘ybq2‘,‘aaa‘,‘ccc‘)
# r.hset(‘ybq2‘,‘sss‘,‘ddd‘)
# r.hset(‘ybq2‘,‘fff‘,‘ggg‘)
# print(r.hget(‘ybq2‘,‘yyy‘))#获取数据
# redis_date = r.hgetall(‘ybq2‘)#获取全部数据,字典不支持decode
# all_date = {}
# for k,v in redis_date.items(): #把hash类型里面面所有的数据转成正常的字典
# k = k.decode()
# v = v.decode()
# all_date[k]=v
# print(all_date)
# r.set(‘ybq:ybq1‘,‘ybq3‘)#一个冒号会创建一个文件夹
# print(r.keys())#获取所有的key
# print(r.keys(‘y*‘))#获取所有以y开头的key
3、接口的写法
import flask
import json
# import day6_3mysqlfz #使用函数 day6_3mysqlfz.op_mysql
from day6_3mysqlfz import op_mysql #使用函数直接op_mysql
#接口 , 后台服务
server = flask.Flask(__name__)#把app.Python文件当做一个server
@server.route(‘/get_user‘,methods=[‘get‘,‘post‘])
def get_all_user():
sql = ‘select * from bt_stu;‘
res = op_mysql(host = ‘211.149.218.16‘,user = ‘jxz‘,passwd = ‘123456‘,port = 3306, db = ‘jxz‘,charset = ‘utf8‘,sql = sql)
respons = json.dumps(res,ensure_ascii=False)#把list转成json
return respons #return的时候,只能return字符串
@server.route(‘/add_user‘,methods=[‘post‘])
def add_user():
user_id = flask.request.values.get(‘id‘) #这里的参数就是调接口时传入的参数
username = flask.request.values.get(‘u‘)
if user_id and username:
sql = "insert into stu VALUES (‘%s‘,‘%s‘);"%(user_id,username)
res = op_mysql(host=‘211.149.218.16‘, user=‘jxz‘, passwd=‘123456‘, port=3306, db=‘jxz‘, charset=‘utf8‘, sql=sql)
renspons = {‘code‘:200,‘msg‘:‘添加成功‘}
else:
renspons = {‘code‘: 300, ‘msg‘: ‘添加失败‘}
return json.dumps(renspons,ensure_ascii=False)
server.run(port=8080,debug=True)#写上debug=True不需要手动重启,会自动重启