mysqlclient‑1.3.12‑cp36‑cp36m‑win_amd64.whl
表示對應python版本是3.6 ,電腦64位
cmd進入python,
>>>import mysqldb(大小寫敏感)
沒有出現任何提示資訊,則表示安裝成功
使用python連線資料庫:
#獲取連線
try:
conn = mysqldb.connect(
host='127.0.0.1',
user='root',
passwd='',
db='news',
port=3306,
charset='utf8'
) #獲取資料
cursor = conn.cursor()
cursor.execute('select * from `news` order by `created_at` desc;')
rest = cursor.fetchone()
print(rest)
#關閉連線
conn.close()
except mysqldb.error as e:
print('error:%s' % e)
使用python查詢資料庫:
import mysqldb
class mysqlsearch(object):
def __init__(self):
self.get_conn()
def get_conn(self):
try:
self.conn = mysqldb.connect(
host='127.0.0.1',
user='root',
passwd='',
db='news',
port=3306,
charset='utf8'
)except mysqldb.error as e:
print('error: %s' % e)
def close_conn(self):
try:
if self.conn:
# 關閉鏈結
self.conn.close()
except mysqldb.error as e:
print('error: %s' % e)
def get_one(self):
# 準備sql
sql = 'select * from `news` where `types` = %s order by `created_at` desc;'
# 找到cursor
cursor = self.conn.cursor()
# 執行sql
cursor.execute(sql, ('百家', ))
# print(cursor.rowcount) #總共多少行
# print(dir(cursor))
print(cursor.description)
# 拿到結果
# rest = cursor.fetchone() #3-3
rest = dict(zip([k[0] for k in cursor.description], cursor.fetchone())) #dict字典,從第乙個元組始獲取
# 處理資料
# print(rest) #3-3
# print(rest['title'])
# 關閉cursor/鏈結
cursor.close()
self.close_conn()
return rest
def get_more(self):
# 準備sql
# offset = (page - 1) * page_size #翻頁
sql = 'select * from `news` where `types` = %s order by `created_at` desc;'
# 找到cursor
cursor = self.conn.cursor()
# 執行sql
# print(dir(cursor))
# 拿到結果
rest = [dict(zip([k[0] for k in cursor.description], row))
for row in cursor.fetchall()] #這邊不是fetchone,最後得到的是乙個list,做乙個迴圈
# 處理資料
# 關閉cursor/鏈結
cursor.close()
self.close_conn()
return rest
# def get_more_by_page(self, page, page_size):
# ''' 分頁查詢資料 '''
# offset = (page - 1) * page_size
# # 準備sql
# sql = 'select * from `news` where `types` = %s order by `created_at` desc limit %s, %s;'
# # 找到cursor
# cursor = self.conn.cursor()
# # 執行sql
# cursor.execute(sql, ('百家', offset, page_size))
# # print(dir(cursor))
# # 拿到結果
# rest = [dict(zip([k[0] for k in cursor.description], row))
# for row in cursor.fetchall()]
# # 處理資料
# # 關閉cursor/鏈結
# cursor.close()
# self.close_conn()
# return rest
def add_one(self):
# ''' 插入資料 '''
# # 受影響的行數
# row_count = 0
try:
# # 準備sql
sql = (
"insert into `news`(`title`,`image`, `content`, `types`, `is_valid`) value"
"(%s, %s, %s, %s, %s);"
)# # 獲取鏈結和cursor
cursor = self.conn.cursor()
# # 執行sql
# # 提交資料到資料庫
cursor.execute(sql, ('標題11', '/static/img/news/01.png', '新聞內容11', '推薦', 1))
cursor.execute(sql, ('標題12', '/static/img/news/01.png', '新聞內容12', '推薦', '1號','ok'))
#is_valid是int型,需要trycatch來處理異常,傳字串會報錯
# # 提交事務
self.conn.commit()
except :
print('error')
# self.conn.commit() #再提交一次,結果是對的資料提交成功,錯的不提交,即部分成功
# # 回滾事務
self.conn.rollback() # 只要有錯,都提交不成功
# # 執行最後一條sql影響的行數
# row_count = cursor.rowcount
# # 關閉cursor和鏈結
cursor.close()
self.close_conn()
# # row_count > 0 表示成功
# return row_count > 0
def main():
obj = mysqlsearch()
# rest = obj.get_one()
# print(rest['title'])
# rest = obj.get_more()
# print(rest) #這樣列印不出
# for item in rest:
# print(item)
# print('------')
# rest = obj.get_more_by_page(2, 3)
# for item in rest:
# print(item)
# print('------')
rest = obj.add_one()
print(rest)
if __name__ == '__main__':
main()
python 相關環境配置log
如果之前安裝過顯示目錄功能的話,這一步驟可以跳過。pip install jupyter contrib nbextensions安裝完之後需要配置 nbextension,注意配置的時候要確保已關閉 jupyter notebook jupyter contrib nbextension inst...
環境配置相關
anaconda pip無法識別 win10安裝了anaconda之後,未設定環境變數,想用pip命令匯入第三方庫,在anaconda資料夾下開啟命令視窗,輸入pip install tensorflow 報錯如下 pip 無法將 pip 項識別為 cmdlet 函式 指令碼檔案或可執行程式的名稱。...
vue環境配置相關
上下文的配置在在vue.config.js的publicpath下,如果沒有硬編碼,那麼dev的路徑配置在 env.development下,生成環境在.env.production 下。env.development就是開發環境的配置,env.production是生產環境的配置,在package...