传入码云,
在码云上新建一个仓库,然后复制仓库地址,点git
文章图片
image.png
然后将复制的地址放在URL中,将你文件放在你创建的位置
文章图片
image.png
点击CLone, 进入pycharm之后
每创建一个.py文件会提示你(add, no) 你选add后,红色的文件会变成绿色的,表示你
可以上传到gitee上了,等你写完程序后可以在pycharm上面有个VCS的目录,
点击push就能传上去了,在gitee上刷新就行了
如图:
文章图片
image.png 先创建一个python(不要用中文命名)的虚拟环境,
然后可以在C:\Users\Administrator添加一个pip包,在pip里创建pip.ini文件,
pip.ini写入:
[global]
index-url=https://pypi.doubanio.com/simple
-- 这样可以加快下载速度
然后在python的终端下载pymysql
pip install pymysql == 0.9.3
-- 可以查看下载的安装包
pip freeze
-- 可以创建一个requirement.txt文件
pip freeze > requirement.txt
我们创建一个example01.py文件
先导入
import pymysql
如果你要设置自动提交可以用
autocommit = True# 默认为False
example01.py文件中(主要是连接数据库的格式,还有sql语句的增删改)
注意: execute() - 他要的是元祖,所以只有一个参数时要用',' - (xx,)
import pymysqldef main():no = input('部门编号:')
name = input('部门名称:')
loc = input('部门所在地:')# 1.创建连接对象
conn = pymysql.connect(host='127.0.0.1', port=3306,
user='root', password='root',
db='hrs', charset='utf8')try:
# 2. 获得游标对象
# 离开这里它会自动关闭
with conn.cursor() as cursor:
# 3.执行sql执行得到结果
# 这里的%s是安全的占位符,是sql中的,而不是py的字符串,所以不能用%d
# result = cursor.execute('insert into tb_dept values (%s, %s, %s)',
#(no, name, loc))# execute() - 他要的是元祖,所以只有一个参数时要用',' - (xx,)
# result = cursor.execute('delete from tb_emp where dno=%s', (no,))result = cursor.execute('update tb_emp set dloc=%s where dno=%s', (loc, no))
if result == 1:
print('更新成功')
# 4.操作成功执行提交
conn.commit()
except pymysql.MySQLError as error:
print(error)
# 4.操作失败执行回滚(和上面那个只会执行一个,所以也用4)
conn.rollback()
finally:
# 5.关闭连接释放资源
conn.close()if __name__ == '__main__':
main()
================================
创建example02.py文件中(查,将数据库的信息如何在py上读出来) 这里涉及到了format函数
str.format(),它增强了字符串格式化的功能。
基本语法是通过 {} 和 : 来代替以前的 % 。
【py连接mysql】format 函数可以接受不限个参数,位置可以不按顺序。
>>>"{} {}".format("hello", "world")# 不设置指定位置,按默认顺序
'hello world'
>>> "{0} {1}".format("hello", "world")# 设置指定位置
'hello world'
>>> "{1} {0} {1}".format("hello", "world")# 设置指定位置
'world hello world''{0}\t{1}\t{2}'.format(self.no, self.name, self.loc)# \t是换行f'{self.no}\t{self.name}\t{self.loc}' # 和上面一样的
import pymysqlclass Dept(object):def __init__(self, no, name, loc):
self.no = no
self.name = name
self.loc = locdef __str__(self):
return '{0}\t{1}\t{2}'.format(self.no, self.name, self.loc)
# return f'{self.no}\t{self.name}\t{self.loc}' # 和上面一样的def main():# 1.创建连接对象
conn = pymysql.connect(host='127.0.0.1', port=3306,
user='root', password='root',
db='hrs', charset='utf8',
cursorclass=pymysql.cursors.DictCursor)
# cursorclass=pymysql.cursors.DictCursor添加了之后变为字典,而不是元祖try:
# 2. 获得游标对象
# 离开这里它会自动关闭
with conn.cursor() as cursor:
# 3.执行sql执行得到结果
cursor.execute('select dno as no, dname as name, dloc as loc from tb_dept')
results = cursor.fetchall()
# print(results)
for row in results:
# TODO 这是没有DictCursor之前(是元祖)
# print(row)
# print(f'部门编号: {row[0]}')
# print(f'部门名称: {row[1]}')
# print(f'部门所在地: {row[2]}')
# print('-' * 20)# 转换成字典更方便取值
# TODO 添加了DictCursor之后为字典了end='\t' - 最后一行换行
# print(row['no'], end='\t')
# print(row['name'], end='\t')
# print(row['loc'])# 用不定长参数取参, ** - 取值row是字典
# print(row)# ({'no': 40, 'name': '运维部', 'loc': '深圳'})
dept = Dept(**row)
print(dept)# 结果和上一步一样的 其中一条是40 运维部 深圳except pymysql.MySQLError as error:
print(error)
# 4.操作失败执行回滚(和上面那个只会执行一个,所以也用4)
finally:
# 5.关闭连接释放资源
conn.close()if __name__ == '__main__':
main()