安装

Linux

pip3 install loguru -i https://pypi.tuna.tsinghua.edu.cn/simple

Windows

pip install loguru -i https://pypi.tuna.tsinghua.edu.cn/simple

使用

#!/usr/bin/env python3
# -*- encoding: utf-8 -*-
"""
@File    :   单位ID.py
@Time    :   2022-08-13 11:02
@Author  :   坐公交也用券
@Version :   1.0
@Contact :   faith01238@hotmail.com
@Homepage : https://liumou.site
@Desc    :   上传和查询单位ID
"""
from loguru import logger
from model.Connect import ConnectDb


# 设置装饰器
@logger.catch
class Create:
	def __init__(self,
	             host,
	             port=3306,
	             user='td',
	             passwd="123",
	             db='dd',
	             table='company'):
		"""
		初始化参数
		:param host: 数据库主机
		:param port: 数据库端口
		:param user: 登录用户
		:param passwd: 登录密码
		:param db: 数据库名称
		:param table: 数据表名称
		"""
		self.table = table
		self.db = db
		self.passwd = passwd
		self.user = user
		self.port = port
		self.host = host
		self.Con = ConnectDb(user=self.user,
		                     host=self.host,
		                     port=self.port,
		                     passwd=self.passwd,
		                     db_name=self.db)
		self.table_list = []
	
	def table_f9(self):
		"""
		创建F9数据表
		:return:
		"""
		pass
	
	def table_sn(self):
		"""
		创建sn数据表
		:return:
		"""
		pass
	
	def dev(self):
		"""
		创建设备表
		:return:
		"""
		cmd = """CREATE TABLE `dev_all` (
 `ID` INT(11) NOT NULL AUTO_INCREMENT COMMENT 'ID',
 `SN` VARCHAR(50) NULL DEFAULT '' COMMENT 'SN' COLLATE 'utf8mb3_general_ci',
 PRIMARY KEY (`ID`) USING BTREE
)
COLLATE='utf8mb3_general_ci'
ENGINE=InnoDB
ROW_FORMAT=DYNAMIC
AUTO_INCREMENT=1
;"""
		if self.exists(table='dev_all'):
			if self.Con.commit(sql=cmd):
				logger.info("创建设备表成功")
			else:
				logger.error("创建设备表失败")
		else:
			logger.debug("已存在数据表: dev_all")
	
	def exists(self, table):
		"""
		检查表是否存在
		:param table:
		:return: 是否需要创建数据表
		"""
		if self.Con.status():
			logger.info("数据库连接成功")
		else:
			logger.error("数据库连接失败")
			exit(1)
		table_list = self.Con.cmd(sql="show tables;")
		if table_list:
			for i in table_list:
				self.table_list.append(i[0])
		if self.table_list:
			if table in self.table_list:
				logger.info(f"数据表存在: {table}")
				return False
		return True


if __name__ == "__main__":
	up = Create(host='127.0.0.1', user='root', passwd='1')
	up.dev()

效果如下

image-1660381497218