python与数据库交互结构_各种数据库与Python之间的交互

一、MySQL与Python的交互

- 安装

pip3 install pymysql

- 使用

import pymysql

# 链接数据库

db = pymysql.Connect(host='127.0.0.1', port=3306, user='root', password='123456', database='test08', charset='utf8')

# 数据库游标

cursor = db.cursor()

# 查询数据

db.begin()

cursor.execute("select * from students_info;")

db.commit()

# 获取所有数据

print(cursor.fetchall())

# 获取一个,根据下标取对应的数据

print(cursor.fetchall()[0])

# 注: 不能同时使用,因为游标会往后移动

# 插入数据

db.begin()

cursor.execute("insert into students_info values ('2000', '老李', '18', '男', '广东深圳', '1703', '89', '90', '81');")

db.commit()

# 更新数据

db.begin()

cursor.execute("update students_info set class='1807' where id=2000")

db.commit()

# 删除数据

db.begin()

cursor.execute("delete from students_info where id=2000")

db.commit()

二、MongoDB与Python的交互

- 安装

pip3 install pymongo

- 使用

import pymongo

from pymongo import MongoClient

from bson.objectid import ObjectId

#1.建立连接

#创建MongoClient的对象

#方式一

#特点:可以连接默认的主机和端口号

#client = MongoClient()

#方式二

#明确指明主机和端口号

#client = MongoClient('localhost',27017)

#client = MongoClient(host='localhost',port=27017)

#方式三

#使用MongoDB URI的

client = MongoClient('mongodb://localhost:27017')

#2.获取数据库

#MongoDB的一个实例可以支持多个独立的数据库

#可以通过MongoClient的对象的属性来访问数据库

#方式一

db = client.test

print(db)

#方式二

#db = client['test']

#3.获取集合

#集合是存储在MongoDb中的一组文档,可以类似于MySQl中的表

#方式一

collection = db.stuents

#方式二

#collection = db['students']

"""

注意:

MongoDB中关于数据库和集合的创建都是懒创建

以上的操作在MongoDB的服务端没有做任何操作

当第一个文档被插入集合的时候才会创建数据库和集合

"""

#4.文档

#在pymongo中使用字典来表示文档

student1 = {

'id':'20180101',

'name':'jack',

'age':20,

'gender':'male'

}

#5.插入文档

#5.1insert()

#插入单条数据

#注意:MongoDb会自动生成一个ObjectId,insert函数的返回值为objectid

result = collection.insert(student1)

print(result)

#插入多条数据

student2 = {

'id':'20180530',

'name':'tom',

'age':30,

'gender':'male'

}

student3 = {

'id':'20180101',

'name':'bob',

'age':18,

'gender':'male'

}

#result = collection.insert([student2,student3])

#6.查询文档

#6.1

#find_one()

result = collection.find_one({'name':'jack'})

print(type(result)) #

print(result)

#6.2find()

#需求:查询年龄为20的数据

results = collection.find({'age':20})

print(results)

#Cursor相当于是一个生成器,只能通过遍历的方式获取其中的数据

for r in results:

print(r)

#6.3其他用法

#a.count()

#统计所有数据的条数

count1 = collection.find().count()

#统计制定条件的数据条数

count1 = collection.find({'age':20}).count()

#7.更新文档

#7.1update()

conditon = {'name':'jack'}

student = collection.find_one(conditon);

student['age'] = 30

result = collection.update(conditon,student)

#7.2update_one()

conditon = {'name':'jack'}

student = collection.find_one(conditon);

student['age'] = 30

result = collection.update_one(conditon,{'$set':student})

print(result.matched_count,result.modified_count)

#7.3update_many()

#查询年龄大于20的数据,然后讲年龄增加1

conditon = {'age':{'$gt':20}}

result = collection.update_one(conditon,{'$inc':{'age':1}})

print(result.matched_count,result.modified_count)

#8.删除文档

#8.1 remove()

#将符合条件的所有的数据全部删除

result = collection.remove({'name':'rose'})

#8.2 delete_one()

result = collection.delete_one({'name':'rose'})

#8.3 delete_many()

result = collection.delete_many({'name':'rose'})

备注: 默认MongoDB是绑定127.0.0.1,连接远程是连接不了的。

编辑MongoDB配置文件: sudo vi /etc/mongodb.conf

找到 bind_ip = 127.0.0.1 改为 bind_ip = 0.0.0.0

三、Redis与Python交互

- 安装

pip3 install redis

- 说明

from redis import StrictRedis

这个模块中提供了StrictRedis对象(Strict严格),用于连接redis服务器,并按照不同类型提供 了不同方法,进行交互操作

StrictRedis对象方法:

通过init创建对象,指定参数host、port与指定的服务器和端口连接,host默认为localhost,port默认为6379,db默认为0 sr = StrictRedis(host='localhost', port=6379, db=0)

- 使用

from redis import *

# 创建一个StrictReids对象,与redis服务器建立连接

sr = StrictRedis(host='localhost', port=6379, db=0)

#1.增

try:

result = sr.set('py1', 'gj')

# result如果为true,则表示添加成功

print(result)

except Exception as e:

print(e)

#2.删

#result = sr.delete('py1')

#print(result)

#3.改

result = sr.set('py1','he')

#4.查

#如果建不存在,则返回None

result = sr.get('py1')

#5.获取建

result = sr.keys()

备注: 默认redis是绑定127.0.0.1,连接远程是连接不了的。

编辑redis配置文件: sudo vi /etc/redis/redis.conf

找到 bind 127.0.0.1 改为 bind 0.0.0.0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值