最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python版SQLite數(shù)據(jù)庫(kù)從入門到綜合運(yùn)用案例(附詳細(xì)演示)

 更新時(shí)間:2026年01月06日 10:23:34   作者:小李云霧  
SQLite是一款輕量級(jí)嵌入式數(shù)據(jù)庫(kù),具有零配置、跨平臺(tái)、文件式存儲(chǔ)等特點(diǎn),適合移動(dòng)端和嵌入式應(yīng)用開發(fā),這篇文章主要介紹了Python版SQLite數(shù)據(jù)庫(kù)從入門到綜合運(yùn)用案例的相關(guān)資料,需要的朋友可以參考下

一、數(shù)據(jù)庫(kù)學(xué)前須知

1、學(xué)前知識(shí)點(diǎn)

在進(jìn)行數(shù)據(jù)存儲(chǔ)和管理時(shí),我們常常需要?個(gè)輕量級(jí)而又功能強(qiáng)大的數(shù)據(jù)庫(kù)系統(tǒng)。SQLite 是?個(gè)極受歡迎的輕量級(jí)數(shù)據(jù)庫(kù),它被廣泛應(yīng)用于各種大小的項(xiàng)目中。Python 自帶了對(duì) SQLite 的?持,使得在 Python 中使用SQLite 變得非常簡(jiǎn)單和直觀。本文將詳細(xì)介紹 Python 中如何使用SQLite3 庫(kù)進(jìn)行數(shù)據(jù)庫(kù)操作。

SQLite特點(diǎn)介紹:

1.輕量級(jí):SQLite?常小巧,無需安裝即可使用,適合嵌入到各種應(yīng)?中。

2.易于使?:SQLite的語法與標(biāo)準(zhǔn)SQL?常接近,對(duì)于有SQL基礎(chǔ)的開發(fā)者來說,入門非常簡(jiǎn)單。

3.?性能:雖然是輕量級(jí)數(shù)據(jù)庫(kù),但SQLite在處理小型和中型數(shù)據(jù)集時(shí)性能非常優(yōu)越。

4.跨平臺(tái):SQLite可以運(yùn)?在各種操作系統(tǒng)上,包括Windows、Linux和macOS。

小提示:SQLite一般只適用于初學(xué)者的入門,與一些小型項(xiàng)目的攥寫,這里學(xué)習(xí)SQLite也是為了后面學(xué)習(xí)打基礎(chǔ)

二、數(shù)據(jù)庫(kù)基本知識(shí)點(diǎn)

1、模塊導(dǎo)入與創(chuàng)建表

模塊導(dǎo)入:

import sqlite3 # 導(dǎo)?SQLite模塊

對(duì)于python來說,sqlite3屬于python標(biāo)準(zhǔn)庫(kù)的一部分,所以無需下載,直接引用即可

創(chuàng)建表:

1.建立數(shù)據(jù)庫(kù)連接(connect):

# 連接到SQLite數(shù)據(jù)庫(kù)
conn = sqlite3.connect('students.db')

如果要建立連接的數(shù)據(jù)庫(kù)不存在會(huì)自動(dòng)創(chuàng)建一個(gè)相同名稱的數(shù)據(jù)庫(kù)

2.創(chuàng)建游標(biāo)(cursor)

# 創(chuàng)建?個(gè)游標(biāo)對(duì)象
cur = conn.cursor()

?。?!注意:在sqlite中所有對(duì)于數(shù)據(jù)庫(kù)和表的操作都需要游標(biāo)對(duì)象來調(diào)用函數(shù)進(jìn)行

3.創(chuàng)建表

一些基礎(chǔ)知識(shí)補(bǔ)充:

id INTEGER PRIMARY KEY AUTOINCREMENT,# 整形,主鍵,?動(dòng)增?
name TEXT NOT NULL, # ?本型,不允許為空
age INTEGER, # 整形
grade TEXT # ?本型

創(chuàng)建表的函數(shù):

注意:對(duì)于數(shù)據(jù)庫(kù)建表操作而言,大寫與小寫都可,例如:id INTEGER PRIMARY KEY AUTOINCREMENT就和id integer primary key autoincrement是相同效果的

創(chuàng)建表代碼示例:

cur.execute(
    '''
    create table if not exists students(
        id integer primary key autoincrement,
        title text not null,
        author text not null,
        year integer
    )
    '''
)

代碼中的if not exists可以在所創(chuàng)建數(shù)據(jù)表不存在的情況下進(jìn)行創(chuàng)建,如果存在則跳過不執(zhí)行

2、基礎(chǔ)增刪改查操作

數(shù)據(jù)庫(kù)插入操作(insert)

數(shù)據(jù)庫(kù)插入格式:

insert into 數(shù)據(jù)表名(元素1,元素2…) values(‘插入數(shù)據(jù)1’,‘插入數(shù)據(jù)2’…)

代碼示例:

cur.execute("insert into book(title,author,year) values('Python編程','張三',2022)")

數(shù)據(jù)庫(kù)刪除操作(delete)

數(shù)據(jù)庫(kù)刪除格式:

delete from 數(shù)據(jù)表名 where 條件語句

如果不加where的條件語句會(huì)默認(rèn)刪除該數(shù)據(jù)表的全部數(shù)據(jù)

cur.execute("delete from book where title = '算法導(dǎo)論'")

數(shù)據(jù)庫(kù)修改操作(update)

數(shù)據(jù)庫(kù)修改格式:

update 數(shù)據(jù)表名 set 元素名 = 修改數(shù)據(jù) where 條件語句

與delete相似,如果不加where的條件語句會(huì)默認(rèn)修改該數(shù)據(jù)表與元素名相關(guān)的全部數(shù)據(jù)

cur.execute("update book set year = 2023 where title = 'Python編程'")

數(shù)據(jù)庫(kù)查找操作(select)

數(shù)據(jù)庫(kù)查找格式:

select 元素名 from 數(shù)據(jù)表名

元素名可替換為*,這代表查找該數(shù)據(jù)表的全部數(shù)據(jù)

cur.execute("select title,author from book")
cur.execute("select * from book")

接收數(shù)據(jù)函數(shù)cur.fetchall()

正確輸出查找信息的代碼示例:

cur.execute("select * from book")
data = cur.fetchall()
print(data)

注意:必須要通過fetchall函數(shù)接收后才能對(duì)查找到的信息進(jìn)行輸出

補(bǔ)充知識(shí)點(diǎn)總結(jié)

1、數(shù)據(jù)庫(kù)查找select返回的是列表與元組的嵌套數(shù)據(jù),在使用函數(shù)傳參等相關(guān)操作時(shí)要特別注意

2、對(duì)于sqlite數(shù)據(jù)庫(kù)而言,無論是創(chuàng)建表還是增刪改查所采用的都是execute函數(shù)進(jìn)行操作,通過游標(biāo)來調(diào)用

3、使用select查找數(shù)據(jù)后,一定要通過fetchall函數(shù)來接收,否則無法返回正確數(shù)據(jù)

4、刪除數(shù)據(jù)庫(kù)代碼:cur.execute(“drop table book”)

5、數(shù)據(jù)庫(kù)操作也可以使用傳參不一定非要寫死,這就需要使用占位符:?

代碼示例:

cur.execute(f"select * from {self.excel} where name = ?",(name,))

?。。∽⒁猓汉竺鎱?shù)需要是元組格式(name,)

3、函數(shù)版增刪改查

就是對(duì)各個(gè)功能進(jìn)行函數(shù)的封裝,再在一個(gè)主函數(shù)中進(jìn)行調(diào)用
代碼示例:

import sqlite3 # 導(dǎo)?SQLite模塊
# 創(chuàng)建數(shù)據(jù)庫(kù)連接函數(shù)
def create_connection(db_file):
 """
 創(chuàng)建與SQLite數(shù)據(jù)庫(kù)的連接
 :param db_file: 數(shù)據(jù)庫(kù)?件路徑
 :return: 數(shù)據(jù)庫(kù)連接對(duì)象
 """
 conn = None # 定義?個(gè)連接對(duì)象
 try:
 conn = sqlite3.connect(db_file) # 嘗試連接到SQLite數(shù)據(jù)庫(kù)
 print("已成功創(chuàng)建連接")
 return conn # 如果成功,返回連接對(duì)象
 except sqlite3.Error as e: # 如果連接失敗,打印錯(cuò)誤信息
 print(f"錯(cuò)誤 '{e}' ")
# 創(chuàng)建表函數(shù)
def create_table(conn):
 """
 創(chuàng)建?戶表
 :param conn: 數(shù)據(jù)庫(kù)連接對(duì)象
 """
 try:
 cursor = conn.cursor() # 獲取游標(biāo)對(duì)象
 cursor.execute('''
 CREATE TABLE IF NOT EXISTS users(
 id INTEGER PRIMARY KEY, 
 name TEXT UNIQUE, 
 age INTEGER)
 ''')
 except sqlite3.Error as e:
 print(e) # 如果創(chuàng)建表失敗,打印錯(cuò)誤信息
# 插?數(shù)據(jù)函數(shù)
def insert_user(conn, data):
 """
 插??戶數(shù)據(jù)
 :param conn: 數(shù)據(jù)庫(kù)連接對(duì)象
 :param data: ?戶數(shù)據(jù)元組,包含name和age
 """
 try:
Python10
 cursor = conn.cursor() # 獲取游標(biāo)對(duì)象
 # 檢查?戶是否已存在
 cursor.execute("SELECT id FROM users WHERE name = ?", (data[0],))
 user_id = cursor.fetchone() # 獲取查詢結(jié)果
 if user_id is None: # 如果?戶不存在,插?新?戶
 cursor.execute("INSERT INTO users (name, age) VALUES (?, ?)",
 data)
 conn.commit() # 提交事務(wù)
 else:
 print(f"?戶: {data[0]} 的id: {user_id[0]}已存在")
 except sqlite3.Error as e:
 print(e) # 如果插?失敗,打印錯(cuò)誤信息
# 更新數(shù)據(jù)函數(shù)
def update_user(conn, data):
 """
 更新?戶數(shù)據(jù)
 :param conn: 數(shù)據(jù)庫(kù)連接對(duì)象
 :param data: ?戶數(shù)據(jù)元組,包含age和name
 """
 try:
 cursor = conn.cursor() # 獲取游標(biāo)對(duì)象
 cursor.execute("UPDATE users SET age = ? WHERE name = ?", data)
 conn.commit() # 提交事務(wù)
 except sqlite3.Error as e:
 print(e) # 如果更新失敗,打印錯(cuò)誤信息
# 刪除數(shù)據(jù)函數(shù)
def delete_user(conn, name):
 """
 刪除?戶數(shù)據(jù)
 :param conn: 數(shù)據(jù)庫(kù)連接對(duì)象
 :param name: ?戶名稱
 """
 try:
 cursor = conn.cursor() # 獲取游標(biāo)對(duì)象
 cursor.execute("DELETE FROM users WHERE name = ?", (name,))
 conn.commit() # 提交事務(wù)
 except sqlite3.Error as e:
 print(e) # 如果刪除失敗,打印錯(cuò)誤信息
# 查詢所有數(shù)據(jù)函數(shù)
def select_all_users(conn):
 """
 查詢所有?戶數(shù)據(jù)
 :param conn: 數(shù)據(jù)庫(kù)連接對(duì)象
 """
 try:
 cursor = conn.cursor() # 獲取游標(biāo)對(duì)象
 cursor.execute("SELECT * FROM users") # 執(zhí)?查詢所有?戶的SQL語句
 rows = cursor.fetchall() # 獲取所有查詢結(jié)果
 for row in rows: # 遍歷所有結(jié)果并打印
 print(row)
 except sqlite3.Error as e:
 print(e) # 如果查詢失敗,打印錯(cuò)誤信息
# 主函數(shù)
def main():
 database = "students2.db" # 定義數(shù)據(jù)庫(kù)?件名稱
 conn = create_connection(database) # 創(chuàng)建數(shù)據(jù)庫(kù)連接
 if conn is not None: # 如果連接成功
 create_table(conn) # 創(chuàng)建表
 try:
 insert_user(conn, ('Alice', 30))
 insert_user(conn, ('Bob', 25))
 # 更新數(shù)據(jù)
 update_user(conn, (35, 'Alice'))
 # 查詢并打印所有?戶
 print("查詢到的所有?戶:")
 select_all_users(conn)
 # 刪除?戶
 delete_user(conn, 'Bob')
 # 再次查詢并打印所有?戶
 print("\n刪除后的?戶數(shù)據(jù):")
 select_all_users(conn)
 except sqlite3.Error as e:
 print(f"出現(xiàn)錯(cuò)誤: {e}")
 finally:
 conn.close() # 確保關(guān)閉數(shù)據(jù)庫(kù)連接
 else:
 print("Error! ?法創(chuàng)建數(shù)據(jù)庫(kù)連接。")
# 程序??
if __name__ == '__main__':
 main()



4、面向?qū)ο蟀嬖鰟h改查

只是在函數(shù)版的基礎(chǔ)上增加了類的設(shè)置,思路大體一致,傳參和初始化有所不同

代碼示例:

import sqlite3
class DatabaseManager:
 """
 數(shù)據(jù)庫(kù)管理器類,?于處理與SQLite數(shù)據(jù)庫(kù)的交互
 """
 def __init__(self, db_file):
 """
 初始化數(shù)據(jù)庫(kù)管理器
 :param db_file: 數(shù)據(jù)庫(kù)?件路徑
 """
 self.db_file = db_file
 self.conn = None
 def create_connection(self):
 """
 創(chuàng)建與SQLite數(shù)據(jù)庫(kù)的連接
 """
 try:
 self.conn = sqlite3.connect(self.db_file)
 print("已成功創(chuàng)建連接")
 except sqlite3.Error as e:
 print(f"錯(cuò)誤 '{e}'")
 def create_table(self):
 """
 創(chuàng)建?戶信息表,包括id、name和age字段
 """
 if self.conn:
 try:
 cursor = self.conn.cursor()
 cursor.execute('''
 CREATE TABLE IF NOT EXISTS users(
 id INTEGER PRIMARY KEY AUTOINCREMENT,
 name TEXT UNIQUE,
 age INTEGER)
 ''')
 except sqlite3.Error as e:
 print(e)
 def insert_user(self, name, age):
 """
 向?戶表中插?新的?戶記錄
:param name: ?戶名
 :param age: ?戶年齡
 """
 if self.conn:
 try:
 cursor = self.conn.cursor()
 cursor.execute("SELECT id FROM users WHERE name = ?", (na
me,))
 if cursor.fetchone() is None:
 cursor.execute("INSERT INTO users (name, age) VALUES 
(?, ?)", (name, age))
 self.conn.commit()
 else:
 print(f"?戶:{name} 已存在")
 except sqlite3.Error as e:
 print(e)
 def update_user(self, name, age):
 """
 更新?戶表中?戶的年齡信息
 :param name: ?戶名
 :param age: 新的?戶年齡
 """
 if self.conn:
 try:
 cursor = self.conn.cursor()
 cursor.execute("UPDATE users SET age = ? WHERE name = ?",
 (age, name))
 self.conn.commit()
 except sqlite3.Error as e:
 print(e)
 def delete_user(self, name):
 """
 從?戶表中刪除指定的?戶
 :param name: 要?jiǎng)h除的?戶名
 """
 if self.conn:
 try:
 cursor = self.conn.cursor()
 cursor.execute("DELETE FROM users WHERE name = ?", (name,
))
 self.conn.commit()
 except sqlite3.Error as e:
 print(e)
 def select_all_users(self):
 """
 查詢并打印?戶表中所有?戶的信息
 """
 if self.conn:
 try:
 cursor = self.conn.cursor()
 cursor.execute("SELECT * FROM users")
 rows = cursor.fetchall()
 for row in rows:
 print(row)
 except sqlite3.Error as e:
 print(e)
 def close_connection(self):
 """
 關(guān)閉與數(shù)據(jù)庫(kù)的連接
 """
 if self.conn:
 self.conn.close()
 print("數(shù)據(jù)庫(kù)連接已關(guān)閉")
def main():
 """
 主函數(shù),?于演示數(shù)據(jù)庫(kù)操作
 """
 database = "students3.db" # 定義數(shù)據(jù)庫(kù)?件名稱
 db_manager = DatabaseManager(database) # 創(chuàng)建數(shù)據(jù)庫(kù)管理器實(shí)例
 db_manager.create_connection() # 創(chuàng)建數(shù)據(jù)庫(kù)連接
 db_manager.create_table() # 創(chuàng)建?戶表
 try:
 db_manager.insert_user('Alice', 30) # 插??戶Alice
 db_manager.insert_user('Bob', 25) # 插??戶Bob
 db_manager.update_user('Alice', 35) # 更新?戶Alice的年齡
 print("查詢到的所有?戶:")
 db_manager.select_all_users() # 查詢并打印所有?戶
 db_manager.delete_user('Bob') # 刪除?戶Bob
 print("\n刪除后的?戶數(shù)據(jù):")
 db_manager.select_all_users() # 再次查詢并打印所有?戶
 except sqlite3.Error as e:
 print(f"出現(xiàn)錯(cuò)誤: {e}")
 finally:
 db_manager.close_connection() # 關(guān)閉數(shù)據(jù)庫(kù)連接
if __name__ == '__main__':
 main()

三、綜合案例:基于 FastAPI 和 SQLAlchemy 實(shí)現(xiàn)CRUD接口

題目要求:

登錄表(三條數(shù)據(jù))
登錄編號(hào) 用戶名 密碼
1 admin admin123

用戶信息表(三條數(shù)據(jù))
用戶編號(hào) 姓名 年齡 地址 電話號(hào)碼
1 張三 22 懷化 13878789898

主程序:
1、登錄 2、注冊(cè) 3、退出
(當(dāng)?shù)卿洺晒? 打印: xxx登錄成功)
(注冊(cè): 如果有相同用戶名, 給出提示)
(對(duì)用戶表進(jìn)行操作)
1、查詢所有用戶信息
(查詢編號(hào)、姓名、年齡、地址、電話號(hào)碼)
2、修改用戶信息(根據(jù)用戶名稱, 修改用戶所有信息)
如果當(dāng)前用戶不存在, 給出提示
3、刪除用戶信息(根據(jù)用戶名稱刪除用戶信息)
如果當(dāng)前用戶不存在, 給出提示

代碼示例:

main頁面代碼:

# 1.導(dǎo)入模塊
from fastapi import FastAPI, HTTPException
from pydantic import BaseModel
from sqlalchemy import create_engine, Column,Integer,String
from sqlalchemy.orm import sessionmaker, declarative_base

# 2.初始化FastAPI對(duì)象
app = FastAPI()

# 3.數(shù)據(jù)庫(kù)配置
# 定義了 SQLite 數(shù)據(jù)庫(kù)的連接路徑
database_url = "sqlite:///./text2.db"
# 創(chuàng)建數(shù)據(jù)庫(kù)連接
engine = create_engine(database_url, connect_args={"check_same_thread": False})
# 創(chuàng)建會(huì)話
# bind=engine :指定要操作的數(shù)據(jù)庫(kù)連接
SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine)

# 4.創(chuàng)建數(shù)據(jù)庫(kù)模型
# 定義數(shù)據(jù)庫(kù)模型
Base = declarative_base()
class Login(Base):
    # 表名
    __tablename__ = "login"
    id = Column(Integer, primary_key=True, index=True)
    username = Column(String, unique=True, index=True)
    password = Column(String)

class User(Base):
    # 表名
    __tablename__ = "user"
    id = Column(Integer, primary_key=True, index=True)
    name = Column(String)
    age = Column(Integer)
    address = Column(String)
    numberphone = Column(String)

# 5.創(chuàng)建數(shù)據(jù)庫(kù)表
# 如果bind=engin的數(shù)據(jù)庫(kù)連接對(duì)應(yīng)的數(shù)據(jù)庫(kù)表不存在,則創(chuàng)建
Base.metadata.create_all(bind=engine)

# 6.創(chuàng)建用戶模型,用于接收請(qǐng)求的用戶數(shù)據(jù)
# BaseModel:基礎(chǔ)類
class LoginCreate(BaseModel):
    username: str
    password: str

class UserCreate(BaseModel):
    name: str
    age: int | None = None
    address: str | None = None
    numberphone: str | None = None

class UserSelect(BaseModel):
    flag: int
    name: str | None = None


# 使用下面代碼后,鼠標(biāo)右鍵直接運(yùn)行啟動(dòng),不需要使用終端
if __name__ == "__main__":
    # 導(dǎo)?uvicorn模塊,?于啟動(dòng)FastAPI服務(wù)
    import uvicorn
    # 啟動(dòng)FastAPI服務(wù),監(jiān)聽所有IP地址,端?號(hào)為8000
    # host="0.0.0.0" 表示監(jiān)聽所有IP地址
    # host="127.0.0.1" 表示監(jiān)聽本地IP地址
    uvicorn.run("main:app", host="127.0.0.1", port=9991)


@app.get("/")
async def root():
    # json類型
    return {"message": "Hello World"}

# ② 提供用戶登錄接口,當(dāng)用戶名和密碼正確時(shí),提示:歡迎xxx,否則提示:用戶名或密碼不正確!
@app.get("/login")
def login(login: LoginCreate):
    try:
        session = SessionLocal()
        user_db = session.query(Login).filter(Login.username == login.username,
                                             Login.password == login.password).first()
        if user_db:
            return f"{login.username}登錄成功!"
        else:
            return "用戶名或密碼錯(cuò)誤"
    except Exception as e:
        return f"登錄失敗: {e}"



# ① 提供用戶注冊(cè)接口,當(dāng)用戶名和密碼不為空(注意:不能有相同的用戶名)
@app.post("/register")
def register(login: LoginCreate):
    try:
        session = SessionLocal()
        user_db = session.query(Login).filter(Login.username == login.username).first()
        if user_db:
            return "用戶已存在"
        else:
            session.add(Login(username=login.username, password=login.password))
            session.commit()
            return "注冊(cè)成功"
    except Exception as e:
        return f"注冊(cè)失敗: {e}"

@app.post("/user_select")
def user_select(user: UserSelect):
    session = SessionLocal()
    if user.flag == 1:
        # 查詢所有用戶信息
        return session.query(User).all()
    elif user.flag == 2:
        # 查詢單個(gè)用戶信息
        return session.query(User).filter(User.name == user.name).first()

@app.post("/user_update")
def user_update(user: UserCreate):
    session = SessionLocal()
    flag = session.query(User).filter(User.name == user.name).first()
    if flag:
        # 直接修改對(duì)象屬性
        flag.name = user.name
        flag.age = user.age
        flag.address = user.address
        flag.numberphone = user.numberphone
        session.commit()
        return "修改成功"
    else:
        return "用戶不存在"

@app.post("/user_delete")
def user_delete(user: UserCreate):
    session = SessionLocal()
    flag = session.query(User).filter(User.name == user.name).first()
    if flag:
        session.delete(flag)
        session.commit()
        return "刪除成功"
    else:
        return "用戶不存在"

@app.post("/user_insert")
def user_insert(user: UserCreate):
    session = SessionLocal()
    flag = session.query(User).filter(User.name == user.name).first()
    if flag:
        return "用戶已存在"
    else:
        session.add(User(name=user.name, age=user.age, address=user.address, numberphone=user.numberphone))
        session.commit()
        return "新增成功"

測(cè)試頁面代碼:

import sqlite3

import requests
import json

def user_table(n):
    if n == 1:
        # 查詢
        flag = input("輸入:1、查詢所有用戶信息頁面\t\t2、查詢單個(gè)用戶信息頁面")
        if flag == '1':
            k = {"flag": 1}
            res_get = requests.post("http://127.0.0.1:9991/user_select", json=k)
            return res_get.text
        elif flag == '2':
            name = input("請(qǐng)輸入用戶名:")
            k = {"flag": 2, "name": name}
            res_get = requests.post("http://127.0.0.1:9991/user_select", json=k)
            return res_get.text
        else:
            return
    elif n == 2:
        # 修改
        name = input("請(qǐng)輸入用戶名:")
        age = input("請(qǐng)輸入年齡:")
        address = input("請(qǐng)輸入地址:")
        numberphone = input("請(qǐng)輸入手機(jī)號(hào):")
        params = {
            "name": name,
            "age": age,
            "address": address,
            "numberphone": numberphone
        }
        res_post = requests.post("http://127.0.0.1:9991/user_update", json=params)
        return res_post.text
    elif n == 3:
        # 刪除
        name = input("請(qǐng)輸入用戶名:")
        res_post = requests.post("http://127.0.0.1:9991/user_delete", json={"name": name})
        return res_post.text
    elif n == 4:
        # 新增
        name = input("請(qǐng)輸入用戶名:")
        age = input("請(qǐng)輸入年齡:")
        address = input("請(qǐng)輸入地址:")
        numberphone = input("請(qǐng)輸入手機(jī)號(hào):")
        params = {
            "name": name,
            "age": age,
            "address": address,
            "numberphone": numberphone
        }
        res_post = requests.post("http://127.0.0.1:9991/user_insert", json=params)
        return res_post.text



#get
while True:
    flag = input("輸入:1、登錄頁面\t\t2、注冊(cè)頁面\t\t3、退出系統(tǒng)")
    if flag == '1':
        print("--------登錄頁面----------")
        username = input("請(qǐng)輸入用戶名:")
        password = input("請(qǐng)輸入密碼:")
        params = {
            "username": username,
            "password": password
        }
        res_get = requests.get(f"http://127.0.0.1:9991/login",json = params)
        arr = res_get.text[-6:-2]
        # print(arr)
        if arr == "登錄成功":
            print(res_get.text)
            print("--------------------恭喜進(jìn)入用戶表操作頁面--------------------")
            while True:
                flag1 = input("輸入:1、查詢用戶信息頁面\t\t2、修改用戶信息頁面\t\t3、刪除用戶信息頁面\t\t4、新增用戶信息頁面\t\t5、退出用戶表操作頁面")
                print(user_table(int(flag1)))
                if flag1 == '5':
                    break
        else:
            print(res_get.text)
    elif flag == '2':
        #post
        print("--------注冊(cè)頁面----------")
        username = input("請(qǐng)輸入用戶名:")
        password = input("請(qǐng)輸入密碼:")
        params = {
            "username": username,
            "password": password
        }
        res_post = requests.post("http://127.0.0.1:9991/register", json=params)
        print(res_post.text)
    else:
        conn = sqlite3.connect("../text2.db", check_same_thread=False)
        conn.close()
        break

總結(jié) 

到此這篇關(guān)于Python版SQLite數(shù)據(jù)庫(kù)從入門到綜合運(yùn)用案例的文章就介紹到這了,更多相關(guān)Python SQLite數(shù)據(jù)庫(kù)案例內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 詳解pandas中iloc, loc和ix的區(qū)別和聯(lián)系

    詳解pandas中iloc, loc和ix的區(qū)別和聯(lián)系

    這篇文章主要介紹了詳解pandas中iloc, loc和ix的區(qū)別和聯(lián)系,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03
  • Python高效解析大型XML文件的方法詳解

    Python高效解析大型XML文件的方法詳解

    XML作為數(shù)據(jù)交換和存儲(chǔ)的主流格式,在數(shù)據(jù)處理領(lǐng)域應(yīng)用廣泛,本文將深入探討Python中增量解析大型XML文件的各種方法,技術(shù)原理和最佳實(shí)踐,希望對(duì)大家有所幫助
    2025-09-09
  • 詳解python-docx處理Word必備工具

    詳解python-docx處理Word必備工具

    這篇文章主要介紹了python-docx處理Word必備工具,我主要講講自己用到的幾個(gè)內(nèi)容是怎么設(shè)置的,對(duì)python-docx處理Word的相關(guān)知識(shí)感興趣的朋友一起看看吧
    2021-10-10
  • Python的進(jìn)制轉(zhuǎn)換和ASCLL轉(zhuǎn)換你了解嗎

    Python的進(jìn)制轉(zhuǎn)換和ASCLL轉(zhuǎn)換你了解嗎

    這篇文章主要為大家詳細(xì)介紹了Python的進(jìn)制轉(zhuǎn)換和ASCLL轉(zhuǎn)換,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-02-02
  • Python Matplotlib 實(shí)現(xiàn)3D繪圖詳解

    Python Matplotlib 實(shí)現(xiàn)3D繪圖詳解

    Matplotlib在二維繪圖的基礎(chǔ)上,構(gòu)建了一部分較為實(shí)用的3D繪圖程序包。本文將為大家詳細(xì)介紹通過調(diào)用該程序包接口繪制 3D散點(diǎn)圖、3D曲面圖、3D線框圖。感興趣的同學(xué)可以了解一下
    2021-11-11
  • python解釋模型庫(kù)Shap實(shí)現(xiàn)機(jī)器學(xué)習(xí)模型輸出可視化

    python解釋模型庫(kù)Shap實(shí)現(xiàn)機(jī)器學(xué)習(xí)模型輸出可視化

    Shap 是一個(gè)開源的 python 庫(kù),用于解釋模型。它可以創(chuàng)建多種類型的可視化,有助于了解模型和解釋模型是如何工作的。在本文中,我們將會(huì)分享一些Shap創(chuàng)建的不同類型的機(jī)器學(xué)習(xí)模型可視化
    2021-11-11
  • python中@Property屬性使用方法

    python中@Property屬性使用方法

    這篇文章主要介紹了python中@Property屬性使用方法,在Python中,可以通過@property裝飾器將一個(gè)方法轉(zhuǎn)換為屬性,從而實(shí)現(xiàn)用于計(jì)算的屬性,下面文章圍繞主題展開更多相關(guān)詳情,感興趣的小伙伴可以參考一下
    2022-06-06
  • Py之pycocotools庫(kù)的簡(jiǎn)介、安裝、使用方法及說明

    Py之pycocotools庫(kù)的簡(jiǎn)介、安裝、使用方法及說明

    這篇文章主要介紹了Py之pycocotools庫(kù)的簡(jiǎn)介、安裝、使用方法及說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • 使用python繪制cdf的多種實(shí)現(xiàn)方法

    使用python繪制cdf的多種實(shí)現(xiàn)方法

    今天小編就為大家分享一篇使用python繪制cdf的多種實(shí)現(xiàn)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-02-02
  • python中如何使用xml.dom.minidom模塊讀取解析xml文件

    python中如何使用xml.dom.minidom模塊讀取解析xml文件

    xml.dom.minidom模塊應(yīng)該是內(nèi)置模塊不用下載安裝,本文給大家介紹python中如何使用xml.dom.minidom模塊讀取解析xml文件,感興趣的朋友一起看看吧
    2023-10-10

最新評(píng)論

博客| 临夏县| 高唐县| 枣强县| 南汇区| 常熟市| 武陟县| 平江县| 大足县| 赤壁市| 江山市| 买车| 越西县| 全州县| 东山县| 普兰店市| 房产| 崇左市| 上虞市| 澳门| 息烽县| 紫金县| 平湖市| 保德县| 洛川县| 屏南县| 车险| 沾益县| 铜鼓县| 河北省| 龙海市| 双桥区| 沙河市| 瑞金市| 封开县| 轮台县| 泉州市| 曲松县| 容城县| 四平市| 广德县|