Python学习笔记(三)
时间:2022-07-26
本文章向大家介绍Python学习笔记(三),主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
Python学习笔记(三) 数据库连接
数据库连接
先需要安装依赖 pip install PyMySQL
,如果你还未设置python依赖下载的全局镜像,请跳转至
测试数据连接使用
import pymysql
# 创建数据库连接
db = pymysql.connect("192.168.10.112","xiongchao","xiongchao","xiongchao")
# 使用cursor()方法创建一个游标对象
cursor = db.cursor()
# 使用excuse方法执行查询数据库版本
# execute 中可以执行 crud 基本操作的语句
try:
cursor.execute("select * from user")
# 获取一条数据
data = cursor.fetchall()
cursor.fetchone()
print(data)
for e in data:
id = e[0]
name = e[1]
print('id :{},name:{}'.format(id,name))
except expression as identifier:
print("Error: unable to find data from db")
db.close()
工具类封装类似于java中的dao
层
文件此处命名为db.py
,测试的类放在与之相同路径
import pymysql
class db_utils:
def __init__(self):
self.ip = '192.168.10.112'
self.username = 'xiongchao'
self.password = 'xiongchao'
self.database ='xiongchao'
self.cursor = ''
self.db = ''
""" 创建数据库连接 """
def create_db(self):
try:
db = pymysql.connect(self.ip,self.username,self.password,self.database)
self.db = db
cursor = db.cursor()
self.cursor = cursor
except :
print("Error: connect to {} timeout ,please check config, and try agin".format(self.ip))
""" 单个查询 """
def find_one(self,sql):
try:
self.cursor.execute(sql)
data = self.cursor.fetchone()
return data
except :
print("Error: no data find ")
self.db.close()
""" 多个查询 """
def find_all(self,sql):
try:
self.cursor.execute(sql)
data = self.cursor.fetchall()
res = []
if len(data) > 0 :
for item in data :
res.append({'id': item[0],'name':item[1]})
return res
except:
print('Error no data find')
self.db.close()
def update(self,sql):
try:
self.cursor.execute(sql)
# 数据提交
self.db.commit()
except:
# 错误的时候 回滚
self.db.rollback()
self.db.close()
# 测试
""" if __name__ == "__main__":
test = db_utils()
cursor = test.create_db()
data = test.find_one("select * from user ")
# 返回的是元祖类型 取值通过下标的方式取
print(type(data))
print(data[0],data[1]) """
测试
# 引用自己封装的包
import db
if __name__ == "__main__":
# 对象实例化
test = db.db_utils()
test.create_db()
data = test.find_all("select * from user")
# 将元祖类型转换成 字典形式
print(data)
test.close_cont()
剩下其它的修改删除用法基本相同
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- JS日期格式化转换方法
- lerna 包管理器
- 解决React前端在开发环境的跨域问题
- Java垃圾回收之jconsole分析
- Spring Boot 系列:日志动态配置详解
- Js电子时钟
- 函数的定义和调用
- this指向
- 严格模式
- 闭包与高阶函数
- IDEA设置maven修改settings.xml配置文件无法加载仓库
- 在Linux下如何根据域名自签发OpenSSL证书与常用证书转换 修改openssl.cnf配置文件创建根证书自签发泛域名证书将crt转pem格式生成 p12 格式的
- CAS 原子操作
- FlutterDojo设计之道—状态管理之路(七)
- Kubernetes K8S之存储ConfigMap详解 通过目录创建通过文件创建通过命令行创建通过yaml文件创建当前存在的ConfigMap使用ConfigMap