傳入碼云,
在碼云上新建一個倉庫,然后復制倉庫地址,點git

image.png
然后將復制的地址放在URL中,將你文件放在你創(chuàng)建的位置

image.png
點擊CLone, 進入pycharm之后
每創(chuàng)建一個.py文件會提示你(add, no) 你選add后,紅色的文件會變成綠色的,表示你
可以上傳到gitee上了,等你寫完程序后可以在pycharm上面有個VCS的目錄,
點擊push就能傳上去了,在gitee上刷新就行了
如圖:

image.png
先創(chuàng)建一個python(不要用中文命名)的虛擬環(huán)境,
然后可以在C:\Users\Administrator添加一個pip包,在pip里創(chuàng)建pip.ini文件,
pip.ini寫入:
[global]
index-url=https://pypi.doubanio.com/simple
-- 這樣可以加快下載速度
然后在python的終端下載pymysql
pip install pymysql == 0.9.3
-- 可以查看下載的安裝包
pip freeze
-- 可以創(chuàng)建一個requirement.txt文件
pip freeze > requirement.txt
我們創(chuàng)建一個example01.py文件
先導入
import pymysql
如果你要設置自動提交可以用
autocommit = True # 默認為False
example01.py文件中(主要是連接數(shù)據(jù)庫的格式,還有sql語句的增刪改)
注意: execute() - 他要的是元祖,所以只有一個參數(shù)時要用',' - (xx,)
import pymysql
def main():
no = input('部門編號:')
name = input('部門名稱:')
loc = input('部門所在地:')
# 1.創(chuàng)建連接對象
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.執(zhí)行sql執(zhí)行得到結果
# 這里的%s是安全的占位符,是sql中的,而不是py的字符串,所以不能用%d
# result = cursor.execute('insert into tb_dept values (%s, %s, %s)',
# (no, name, loc))
# execute() - 他要的是元祖,所以只有一個參數(shù)時要用',' - (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.操作成功執(zhí)行提交
conn.commit()
except pymysql.MySQLError as error:
print(error)
# 4.操作失敗執(zhí)行回滾(和上面那個只會執(zhí)行一個,所以也用4)
conn.rollback()
finally:
# 5.關閉連接釋放資源
conn.close()
if __name__ == '__main__':
main()
================================
創(chuàng)建example02.py文件中(查,將數(shù)據(jù)庫的信息如何在py上讀出來)
這里涉及到了format函數(shù)
str.format(),它增強了字符串格式化的功能。
基本語法是通過 {} 和 : 來代替以前的 % 。
format 函數(shù)可以接受不限個參數(shù),位置可以不按順序。
>>>"{} {}".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 pymysql
class Dept(object):
def __init__(self, no, name, loc):
self.no = no
self.name = name
self.loc = loc
def __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.創(chuàng)建連接對象
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添加了之后變?yōu)樽值?而不是元祖
try:
# 2. 獲得游標對象
# 離開這里它會自動關閉
with conn.cursor() as cursor:
# 3.執(zhí)行sql執(zhí)行得到結果
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'])
# 用不定長參數(shù)取參, ** - 取值 row是字典
# print(row) # ({'no': 40, 'name': '運維部', 'loc': '深圳'})
dept = Dept(**row)
print(dept) # 結果和上一步一樣的 其中一條是40 運維部 深圳
except pymysql.MySQLError as error:
print(error)
# 4.操作失敗執(zhí)行回滾(和上面那個只會執(zhí)行一個,所以也用4)
finally:
# 5.關閉連接釋放資源
conn.close()
if __name__ == '__main__':
main()