3,Python 连接操作MySQL
安装配置git与pycharm连接
pycharm从gitee拉取代码
从git官网下载新版的git,安装操作可以全部使用默认下一步直到完成。
打开pycharm--> setting --> version control --> git ,在窗口顶部,path to Git executable会自动检测到git的安装路劲,点击Test验证是否可成功执行。
clone代码连接:https://gitee.com/fishatc/smart-testing.git
pycharm 上传代码到gitee仓库
step1:pycharm中安装gitee插件,安装之后会提示restart IDE,直接重启就好
step2: 登录gitee
step3:vcs--> import into version control --> share project on gitee
step4, 在弹出框中填写对应 的从仓库和描述信息即可 --》 点击share--》弹框中选择要commit的文件
step5, 如果修改了某个文件,右击该文件--》git --》Commit File
step6, push 到远程仓库
给项目建虚拟环境:
图形界面:
pycharm--> setting --> project --> project interpreter -->在齿轮处选择add --> 默认在项目目录下创建venv
命令行:
#方式1:
pip install virtualenv
#方式2:test_env为一个文件夹
python -m venv test_env
#激活虚拟环境
cd test_env/Scripts
activate
#退出虚拟环境
deactivate
替换pip镜像源为国内豆瓣的:直接使用pip命令替换
(venv) D:\db1901>pip install numpy -i https://pypi.douban.com/simple/
或者命令:
(venv) D:\db1901>pip config set global.index-url http://pypi.douban.com/simple/
安装依赖
依赖包requirements.txt 文件:
certifi==2019.6.16
chardet==3.0.4
idna==2.8
PyMySQL==0.9.3
redis==3.3.8
requests==2.22.0
urllib3==1.25.3
(venv) D:\db1901>pip install -r requirements.txt
#查看虚拟环境下已经安装的依赖包
(venv) D:\db1901>pip freeze
certifi==2019.6.16
chardet==3.0.4
idna==2.8
numpy==1.21.6
PyMySQL==0.9.3
redis==3.3.8
requests==2.22.0
urllib3==1.25.3
xlrd==2.0.1
pip 安装依赖报错
Could not install packages due to an EnvironmentError: [WinError 5] Access is denied: 'd:\db1901\venv\scripts\pip.exe'
Consider using the --user
option or check the permissions.
可能原因是pip版本过低。
解决办法:直接使用第二条应该就OK.
尝试1,将Python安装文件夹C:\Program Files\Python37和虚拟环境文件夹D:\db1901\venv文件夹赋予administrators 和本机用户 full control 权限,重启电脑
在pycharm下terminal,执行
pip install -U pip
仍然报错:
Cannot open D:\db1901\venv\Scripts\pip-script.py
尝试2,执行一条命令 python -m ensurepip,发现pip版本从19.0.3降到18.1,再次执行pip install -U pip,成功升级到最新22.2。
通过python操作mysql
连接和插入数据
import pymysql
no = int(input('部门编号:'))
name = input('部门名称:')
location = input('部门所在地:')
# 第一步:指定主机、端口、用户名、口令、数据库、字符集创建连接
conn = pymysql.connect(host='192.168.1.10', port=3306,
user='zabbix', password='123456',
database='company', charset='utf8',
autocommit=True)
try:
# 第二步:通过连接对象的cursor方法获取游标对象
with conn.cursor() as cursor:
# 第三步:通过游标对象的execute方法向数据库发出SQL
result = cursor.execute(
'insert into tb_dpt values (%s, %s, %s)',
(no, name, location)
)
if result == 1:
print('新增部门成功!!!')
# 第四步:所有操作都成功就提交
conn.commit()
except pymysql.MySQLError as err:
print(err)
# 第四步:如果出现异常就回滚(撤销)
conn.rollback()
finally:
# 第五步:关闭连接释放资源
conn.close()
删除
import pymysql
no = int(input('部门编号:'))
# 第一步:创建连接对象
conn = pymysql.connect(host='192.168.1.10', port=3306,
user='zabbix', password='123456',
database='company', charset='utf8',
autocommit=True)
try:
# 第二步:获取游标对象
with conn.cursor() as cursor:
# 第三步:通过游标对象的execute方法向数据库发出SQL
result = cursor.execute(
#删除
'delete from tb_dpt where dno=%s ',(no,),
)
if result == 1:
print('删除部门成功!!!')
# 第四步:所有操作都成功就提交
conn.commit()
except pymysql.MySQLError as err:
print(err)
# 第四步:如果出现异常就回滚(撤销)
# conn.rollback()
finally:
# 第五步:关闭连接释放资源
conn.close()
更新
import pymysql
no = int(input('部门编号:'))
dcom = input('部门对应的公司:')
# 第一步:创建连接对象
conn = pymysql.connect(host='192.168.1.10', port=3306,
user='zabbix', password='123456',
database='company', charset='utf8',
autocommit=True)
try:
# 第二步:获取游标对象
with conn.cursor() as cursor:
# 第三步:通过游标对象的execute方法向数据库发出SQL
result = cursor.execute(
#更新部门对应公司
'update tb_dpt set dcom=%s where dno=%s ',(dcom,no,),
)
if result == 1:
print('更新部门成功!!!')
# 第四步:所有操作都成功就提交
conn.commit()
except pymysql.MySQLError as err:
print(err)
# 第四步:如果出现异常就回滚(撤销)
# conn.rollback()
finally:
# 第五步:关闭连接释放资源
conn.close()
查询
import pymysql
# 第一步:创建连接对象
conn = pymysql.connect(host='192.168.1.10', port=3306,
user='zabbix', password='123456',
database='company', charset='utf8',
autocommit=True)
try:
# 第二步:获取游标对象
with conn.cursor() as cursor:
# 第三步:通过游标对象的execute方法向数据库发出SQL
# 查看部门
cursor.execute('select dno,dname,dcom from tb_dpt')
# print(cursor.fetchall())
for i in cursor.fetchall():
print('部门编号:', i[0], '部门名称:', i[1],'部门所在公司:', i[2])
except pymysql.MySQLError as err:
print(err)
# 第四步:如果出现异常就回滚(撤销)
# conn.rollback()
finally:
# 第五步:关闭连接释放资源
conn.close()
4,一对一外键关联
create table tb_person
(
pid int auto_increment,
pname varchar(50) not null,
primary key (pid)
);
create table tb_card
(
cid int auto_increment,
cno char(18) not null,
ps varchar(255) not null,
expire date not null,
pid int not null,
primary key (cid)
);
-- 添加外键约束
alter table tb_card add constraint fk_card_pid foreign key (pid) references tb_person (pid);
alter table tb_card add constraint uni_card_pid unique (pid);
标签:03,--,pymysql,cursor,print,mysql,pip,pycharm,conn
From: https://www.cnblogs.com/orange2016/p/16746741.html