view--->Tool Buttons,點擊Pycharm右側的Database
1、連接數據庫
2、建立一個表,添加數據
通過以上操作把用戶名和密碼儲存到了數據庫中
3、連接登錄數據庫
連接數據庫
# 1. 連接數據庫 conn = pymysql.connect( host="localhost", port=3306, # 端口號是數字類型 database="userinfo", # 寫自己本地的數據庫名字 user="root", password="3822515", charset="utf8" # 千萬記得沒有- ) cursor = conn.cursor() # 獲取輸入SQL語句的光標對象 sql = "select * from info;" ret = cursor.execute(sql) print(ret) # 關閉連接 cursor.close() conn.close()

import pymysql username = input("輸入用戶名:") pwd = input("請輸入密碼:") # if username == "erge" and pwd == "dashabi": # print("登陸成功!") # else: # print("滾~") # 拿到用戶輸入的用戶名密碼 # 去數據庫里面判斷用戶名和密碼是否正確 # 1. 連接數據庫 conn = pymysql.connect( host="localhost", port=3306, # 端口號是數字類型 database="userinfo", # 寫自己本地的數據庫名字 user="root", password="3822515", charset="utf8" # 千萬記得沒有- ) cursor = conn.cursor() # 獲取輸入SQL語句的光標對象 sql = "select * from info;" ret = cursor.execute(sql) print(ret) # 關閉連接 cursor.close() conn.close() # 2. 判斷 --> 只需要把檢索條件寫到sql語句中,去數據庫執行就可以了 # with open("userinfo.txt", "r", encoding="utf-8") as f: # for line in f: # # print(line.strip()) # u, p = line.strip().split("|") # if u == username and p == pwd: # print("登陸成功!") # break # else: # print("go out~")

import pymysql # 獲取用戶輸入 username = input("輸入用戶名:") pwd = input("請輸入密碼:") # 連接數據庫檢索有沒有該用戶 conn = pymysql.connect( host="localhost", port=3306, database="userinfo", user="root", password="3822515", charset="utf8" ) cursor = conn.cursor() # 獲取光標 # 拼接要執行的SQL語句 sql = "select * from info where username='%s' and password='%s'" % (username, pwd) print(sql) print("=" * 120) # 執行SQL語句 ret = cursor.execute(sql) if ret: print("登錄成功") else: print("登錄失敗!") # 關閉光標對像 cursor.close() # 關閉連接 conn.close()
登錄校驗MySQL--規避SQL注入
import pymysql # 獲取用戶輸入 username = input("輸入用戶名:") pwd = input("請輸入密碼:") # 連接數據庫檢索有沒有該用戶 conn = pymysql.connect( host="localhost", port=3306, database="userinfo", user="root", password="3822515", charset="utf8" ) cursor = conn.cursor() # 獲取光標 # 拼接要執行的SQL語句 sql = 'select * from info where username=%s and password=%s' print(sql) print("=" * 120) # 執行SQL語句 ret = cursor.execute(sql, [username, pwd]) # 讓pymysql幫我們拼接SQL語句 if ret: print("登錄成功") else: print("登錄失敗!") # 關閉光標對像 cursor.close() # 關閉連接 conn.close()
4、操作數據庫

""" pymysql增操作 """ import pymysql conn = pymysql.connect( host="localhost", port=3306, database="userinfo", user="root", password="3822515", charset="utf8" ) cursor = conn.cursor() # 拼接語句 sql = "insert into info (username, password)VALUES (%s, %s)" # 執行 data=("Ale",1882) try: cursor.execute(sql, data) conn.commit() except Exception as e: print("報錯啦:",str(e)) conn.rollback() # 回滾 # 對數據庫做寫操作一定要記得提交assword cursor.close() conn.close()

import pymysql conn = pymysql.connect( host="localhost", port=3306, database="userinfo", user="root", password="3822515", charset="utf8" ) cursor = conn.cursor() # 創建班級的sql語句 sql = "insert into info (username, password) VALUES (%s, %s)" data = [("alex1", "dashabi"), ("污Sir1","sha"), ("xiaoyima1", "nvshen")] try: cursor.executemany(sql, data) # 內部實現for循環,批量執行插入語句 # for i in data: # cursor.execute(sql, i) conn.commit() # 提交一次 except Exception as e: print("錯啦!") conn.rollback() cursor.close() conn.close()

import pymysql conn = pymysql.connect( host="localhost", port=3306, database="userinfo", user="root", password="3822515", charset="utf8" ) cursor = conn.cursor() # sql = "delete from info WHERE username=%s" sql = "delete from info WHERE id=%s" cursor.execute(sql,8) conn.commit() cursor.close() conn.close()

import pymysql conn = pymysql.connect( host="localhost", port=3306, database="userinfo", user="root", password="3822515", charset="utf8" ) cursor = conn.cursor() sql = "update info set password=%s where username=%s" cursor.execute(sql,["123456", "Ale"]) conn.commit() cursor.close() conn.close()

import pymysql conn = pymysql.connect( host="localhost", port=3306, database="userinfo", user="root", password="3822515", charset="utf8" ) cursor = conn.cursor(cursor=pymysql.cursors.DictCursor) # 指定返回的數據格式為字典格式 sql = "select * from info" cursor.execute(sql) # 返回的不是具體的數據而是受影響的行數 # ret = cursor.fetchall() # 返回所有的數據 # ret = cursor.fetchone() # 返回第一條的數據 # print(ret) # ret = cursor.fetchone() # 接着上一條返回一條數據 # print(ret) ret = cursor.fetchmany(3) # 查詢具體多少條數據,這里查詢前三條數據 print(ret) # cursor.scroll(0, mode="absolute") # 絕對移動,寫多少就是移到多少,這里從第1條數據開始查 cursor.scroll(-1, mode="relative") #相對移動,這里-1表示光標往前移動數據到第2條數據,從第3條數據開始查 ret = cursor.fetchall() print(ret) cursor.close() conn.close()

import pymysql conn = pymysql.connect( host="localhost", port=3306, database="userinfo", user="root", password="3822515", charset="utf8" ) cursor = conn.cursor() # 創建班級的sql語句 sql1 = "insert into class (name) VALUES (%s)" # 創建學生的sql語句 sql2 = "insert into student (name, cid) VALUES (%s, %s)" cursor.execute(sql1, "全棧9期") new_id = cursor.lastrowid # 獲取剛插入數據的ID值 cursor.execute(sql2, ["小東北", new_id]) conn.commit() cursor.close() conn.close()