整理了一下前面3期学的内容后,现在练习使用python去操作数据库

#!python3
# coding:utf-8
import pymysql
class mysql_option():
def __init__(self, host, port, username, pwd, **kwargs):
'''
如果直接连接到具体的数据库,只需要传kwargs,即db = dbname
:param host:
:param port:
:param username:
:param pwd:
:param kwargs:
:return:
'''
self.conn = self.mysql_connect(host, port, username, pwd, **kwargs)
self.cursor = self.conn.cursor() @staticmethod
def mysql_connect(host, port, username, pwd, **kwargs):
try:
connect = pymysql.connect(host = host, port = int(port), user = username, passwd = pwd, charset = 'utf8', **kwargs)
print("Mysql数据库连接成功")
return connect
except Exception as ex:
print("Mysql连接异常,具体报错如下:\n%s"%(ex))
return False def create_database(self, dbname):
'''
创建数据库
:param dbname: 数据库名称
:return:
'''
try:
create_db_sql = "create database if not exists %s default character set utf8 collate utf_8_general_ci;"%(dbname)
self.cursor.execute(create_db_sql)
result = self.cursor.fetcall()
print("创建%s数据库成功%s"%(dbname, result))
except Exception as ex:
print("创建%s数据库失败,具体原因如下:\n%s"%(dbname, ex))
self.cursor.close()
return False def select_db(self, db_name):
try:
self.conn.select_db(db_name)
print("连接数据库%s成功"%(db_name))
except Exception as ex:
print("连接数据库%s失败,具体原因如下:\n%s"%(db_name, ex))
self.cursor.close()
return False def create_table(self, table_name):
create_table_sql = "create table if not exists %s"%(table_name)
try:
self.cursor.execute(create_table_sql)
result = self.cursor.fetcall()
print("创建%s数据表成功%s"%(table_name, result))
return True
except Exception as ex:
print("创建%s数据表失败,具体原因如下:\n%s"%(table_name, ex))
self.cursor.close()
return False def sql_option(self, option):
try:
self.cursor.execute(option)
except Exception as ex:
print("操作语句执行失败,具体原因如下:\n%s"%(ex))
self.conn.rollback() #事务回滚
return False
else:
self.conn.commit()
print("SQL事物提交成功,提交结果:%s"%(self.cursor.rowcount))
return True
finally:
self.cursor.close() #关闭连接 def show_db(self):
self.cursor.execute("show databases;")
result = self.cursor.fetchall()
return result def show_table(self):
self.cursor.execute("show tables;")
result = self.cursor.fetchall()
return result def show_desc(self, table_name):
sql_op = "desc %s"%(table_name)
self.cursor.execute(sql_op)
result = self.cursor.fetchall()
return result def drop_db(self, db_name):
sql_op = "drop database %s"%(db_name)
print("警告:您将删除数据库%s,请再次确认删除!(Y)确认 (N)取消"%(db_name))
confirm = input("请选择:")
if confirm == "Y" or confirm == "y":
try:
print("开始删除……")
self.cursor.execute(sql_op)
print("删除数据库%s成功"%(db_name))
return True
except Exception as ex:
print("删除数据库%s失败,具体原因:%s"%(db_name, ex))
return False
finally:
self.cursor.close()
else:
print("本次操作已取消!")
return False def drop_table(self, table_name):
sql_op = "drop table %s"%(table_name)
print("警告:您将删除数据表%s,请再次确认删除!(Y)确认 (N)取消"%(table_name))
confirm = input("请选择:")
if confirm == "Y" or confirm == "y":
print("开始删除……")
try:
self.cursor.execute(sql_op)
print("删除数据表%s成功%s"%(table_name))
return True
except Exception as ex:
print("删除数据表%s失败,具体原因:%s"%(table_name, ex))
return False
finally:
self.cursor.close() #关闭连接 else:
print("本次操作已取消!") def close_mysql(self):
self.cursor.close() if __name__ == '__main__':
mysql_option = mysql_option("192.168.183.128", "3306", "root", "Abc123!", db = 'testdb')
# mysql_option = mysql_option("192.168.183.128", "3306", "root", "Abc123!")
# print(mysql_option.show_db()[4][0])
# db = mysql_option.show_db()[4][0]
# mysql_option.select_db(db)
# # mysql_option.show_table()
# # mysql_option.close_mysql()
# print(mysql_option.show_desc("test_tables"))
# mysql_option.drop_db("testdb02")
SQL = "select *from user where id=1"
mysql_option.sql_option(SQL)

mysql学习(4)python操作数据库的更多相关文章

  1. MySQL学习02(操作数据库)

    操作数据库 结构化查询语句分类 名称 解释 命令 DDL(数据库定义语言) 定义和管理数据对象,例如数据库和数据表 create.drop.alter DML(数据操作语言) 用于操作数据库对象中所包 ...

  2. mysql 之 用python操作数据库

  3. Python操作数据库之 MySQL

    Python操作数据库之MySQL 一.安装Python-MySQLdb模块 Python-MySQLdb是一个操作数据库的模块,Python 通过它对 mysql 数据实现各种操作. 如果要源码安装 ...

  4. Python学习笔记 - day11 - Python操作数据库

    MySQL的事务 MySQL的事务支持不是绑定在MySQL服务器本身,而是与存储引擎相关,MySQL的两种引擎如下: 1.MyISAM:不支持事务,用于只读程序提高性能 2.InnoDB:支持ACID ...

  5. Python接口测试实战3(上)- Python操作数据库

    如有任何学习问题,可以添加作者微信:lockingfree 课程目录 Python接口测试实战1(上)- 接口测试理论 Python接口测试实战1(下)- 接口测试工具的使用 Python接口测试实战 ...

  6. 孤荷凌寒自学python第四十四天Python操作 数据库之准备工作

     孤荷凌寒自学python第四十四天Python操作数据库之准备工作 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 今天非常激动地开始接触Python的数据库操作的学习了,数据库是系统化设计 ...

  7. python 操作数据库的常用SQL命令

    这俩天在学习PYTHON操作数据库的知识.其实基本SQL命令是与以前学习的MYSQL命令一致,只是增加了一些PYTHON语句. 1,安装pymysql,并导入. import pymysql 2,因为 ...

  8. python操作数据库

    一,安装mysql 如果是windows 用户,mysql 的安装非常简单,直接下载安装文件,双击安装文件一步一步进行操作即可. Linux 下的安装可能会更加简单,除了下载安装包进行安装外,一般的l ...

  9. 零基础学Python--------第11章 使用Python操作数据库

    第11章 使用Python操作数据库 11.1 数据库编程接口 在项目开发中,数据库应用必不可少.虽然数据库的种类有很多,如SQLite.MySQL.Oracle等,但是它们的功能基本都是一样的,为了 ...

  10. python操作数据库PostgreSQL

    1.简述 python可以操作多种数据库,诸如SQLite.MySql.PostgreSQL等,这里不对所有的数据库操作方法进行赘述,只针对目前项目中用到的PostgreSQL做一下简单介绍,主要包括 ...

随机推荐

  1. cookie的详解

    cookie是如何出生的 由于HTTP协议是无状态的,而服务器端的业务必须是要有状态的.Cookie诞生的最初目的是为了存储web中的状态信息,以方便服务器端使用.比如判断用户是否是第一次访问网站.目 ...

  2. ES6标准入门之变量的解构赋值简单解说

    首先我们来看一看解构的概念,在ES6标准下,允许按照一定模式从数组和对象中提取值,然后对变量进行赋值,这被称作解构,简而言之粗糙的理解就是变相赋值. 解构赋值的规则是,只要等号右边的值不是对象或者数组 ...

  3. Java之时间转换

    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date date = sdf.parse( ...

  4. django表格form无法保存评论排查步骤

    初学django项目,在网上找了个blog教程,还是很不错的,这里感谢一下博主https://www.zmrenwu.com/post/2/ 这个项目适合django初学者,是一个完整的blog项目 ...

  5. JAVA框架Struts2--配置讲解

    一.配置讲解: <struts> <package name="oop" namespace="/" extends="struts ...

  6. 编写陈旭,实现通过字符型变量创建boolean值,再将其转换为字符串输出,观察输出后的字符串与创建Boolean对象时给定的参数是否相等.

    主要涉及到基本数据类型与包装类的转换. Boolean类的tostring方法的作用,返回一个表示该布尔值的 String 对象 public class Test1 { public static ...

  7. 通过HttpWebRequest调用webService

    调用远端接口,向远端接口写入一个xml文件(loginLog为xml的字符串).关键方法如下: public object InsertAuditLog(string loginLog) { //Ws ...

  8. CF1039E Summer Oenothera Exhibition 根号分治,LCT,ST表

    CF1039E Summer Oenothera Exhibition LG传送门 根号分治好题. 可以先看我的根号分治总结. 题意就是给出长度为\(n\)的区间和\(q\)组询问以及一个\(w\), ...

  9. VS编程,WPF中两个滚动条 ScrollViewer 同步滚动的一种方法

    原文:VS编程,WPF中两个滚动条 ScrollViewer 同步滚动的一种方法 版权声明:我不生产代码,我只是代码的搬运工. https://blog.csdn.net/qq_43307934/ar ...

  10. WPF自定义控件的自定义属性绑定后不更新问题

    原文:WPF自定义控件的自定义属性绑定后不更新问题 需要在绑定时设置属性变更触发 UpdateSourceTrigger=PropertyChanged 例如: <Border CornerRa ...