1.connect连接数据库
import pymysql
def get_conn():
conn = pymysql.connect(host='xxx.xxx.xxx.xxx', port=3306, user='root', passwd='', db='newspaper_rest') # db:表示数据库名称
return conn
2.创建表
import pymysql
def get_conn():
conn = pymysql.connect(host='xxx.xxx.xxx.xxx', port=3306, user='root', passwd='', db='newspaper_rest') # db:表示数据库名称
return conn
# 创建mysql表
def ceartTable(cursor,form_name):
#删数据库行为 要慎重
# # # 创建newspaper_rest 数据库, 如果存在则删除newspaper_rest 数据库
cursor.execute("drop database if exists newspaper_rest")
cursor.execute("create database newspaper_rest")
# 选择 newspaper_rest 这个数据库
cursor.execute("use newspaper_rest")
# KEY
# IDENTITY
# 将sql中的内容为创建一个名为recordid_form的表
sql = """CREATE TABLE IF NOT EXISTS %s (
recordid VARCHAR (100),
publish_date VARCHAR (100),
page_num VARCHAR (100),
ISdeal VARCHAR (1),
primary key (recordid,publish_date,page_num)
)"""%(form_name)
# # 如果存在表则删除
# cursor.execute("drop table if exists %s"%(form_name))
# 创建表
cursor.execute(sql)
print("successfully create table")
db = get_conn()
cursor = db.cursor()
# # # # # # 创建数据库和表
form_name = 'imgs_list_path_form'
ceartTable(cursor, form_name)
3.插入并且加上了重复插入的异常
# 在存放图片路径的表中插入数据
def insert_pub_page_name_data(db,cursor,recordid, publish_name,page_num,isdeal):
# ISdeal = [str(isdeal)]*len(recordid)
# data_tuple = tuple(zip(recordid, ISdeal))
try:
# 插入数据
sql = "INSERT INTO imgs_list_path_form (recordid,publish_date,page_num,ISdeal) VALUES('%s','%s','%s','%s')"%(recordid, publish_name,page_num,isdeal)
cursor.execute(sql)
# cursor.executemany(sql, data_tuple)
# 提交到数据库执行
db.commit()
print("successfully insert publish date data!")
except Exception as e:
print('insert multipy!', e)
return False
return True
4.查询
def find_pub_page_name_data(cursor,is_deal):
# 要执行的sql语句
sql = "select * from imgs_list_path_form where ISdeal ='%s'"%(is_deal)
cursor.execute(sql)
try:
result = cursor.fetchall()
except TypeError:
print("An exception was raised")
else:
# print(result, "successfully find")
print("successfully find publish date data!!!")
# print('res:', result)
return result
5.更新
def update_pub_page_name_data(db,cursor,recordid,publish_name,page_num):
try:
# 更改
sql = "update imgs_list_path_form set ISdeal='1' where recordid='%s' AND publish_date='%s' AND page_num='%s'"%(recordid,publish_name,page_num)
cursor.execute(sql)
db.commit()
print('update Success!')
except Exception as e:
print('update fail!',e)
return False
return True
6.删除
# 删除
def deleteRecord(db, cursor, key, value):
# 要执行的sql语句
sql = "delete from recordid_library where " + key + "=" + value
cursor.execute(sql)
db.commit()
print("successfully delete")
可视化数据库:
首先上官网上下载LINUX版本: http://www.navicat.com/download/navicat-for-mysql
一.安装
1 下载 navicat110_mysql_en.tar.gz 文件
2.tar -zxvf xxx/navicat112_mysql_cs_x64
3 解压后 进入解压后的目录运行命令:
./start_navicat
二.修改中文可视
连接上数据库后里面的中文数据是乱码,把Ubuntu的字符集修改为zh_CN.utf8就行了,修改方法:
1.查看系统支持的字符集: locale -a
2,修改字符集: export LANG=zh_CN.utf8
3.用vim命令打开start_navicat文件,会看到 export LANG=”en_US.UTF-8” 将这句话改为 export LANG=”zh_CN.UTF-8”。
三.破解
sudo rm -r /home/fzh/.navicat64/
删除后,再次启动navicat时,会加载wine的更新配置窗口,启动后之前用的连接名以及密码已经没有了,需要重新创建连接。