基于Python實(shí)現(xiàn)一個(gè)簡(jiǎn)易的數(shù)據(jù)管理系統(tǒng)
為了方便的實(shí)現(xiàn)記錄數(shù)據(jù)、修改數(shù)據(jù)沒有精力去做一個(gè)完整的系統(tǒng)去管理數(shù)據(jù)。因此,在python的控制臺(tái)直接實(shí)現(xiàn)一個(gè)簡(jiǎn)易的數(shù)據(jù)管理系統(tǒng),包括數(shù)據(jù)的增刪改查等等。只需要在控制臺(tái)層面調(diào)用相應(yīng)的功能調(diào)用查詢、修改等功能,這里記錄一下實(shí)現(xiàn)過程。
創(chuàng)建mysql數(shù)據(jù)表
使用比較熟悉的數(shù)據(jù)庫客戶端來進(jìn)行操作,這里使用的是navicate客戶端來創(chuàng)建好相應(yīng)的數(shù)據(jù)表。
創(chuàng)建數(shù)據(jù)庫并指定編碼字符集。
CREATE DATABASE `data_boc` CHARACTER SET 'utf8mb4' COLLATE 'utf8mb4_general_ci';
創(chuàng)建數(shù)據(jù)記錄表boc
CREATE TABLE `boc` ( `id_` bigint(255) NOT NULL COMMENT '數(shù)據(jù)記錄編號(hào),ID_作為主鍵', `boc_address` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `boc_code` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `boc_email` varchar(24) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `boc_name` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, PRIMARY KEY (`id_`) USING BTREE )
增刪改查
import pymysql as mysql # 導(dǎo)入mysql驅(qū)動(dòng)器 from pprint import pprint # 導(dǎo)入美觀的數(shù)據(jù)打印庫
確定一下需要實(shí)現(xiàn)哪些功能,在控制臺(tái)打印出功能列表,通過在控制臺(tái)輸入每個(gè)功能列表前面的標(biāo)記來進(jìn)入后臺(tái)系統(tǒng)的使用。
def current_menu(): ''' 功能目錄列表展示 :return: ''' pprint('---------------- 簡(jiǎn)易數(shù)據(jù)管理系統(tǒng) ----------------') pprint('系統(tǒng)功能實(shí)現(xiàn):<Python 集中營>') pprint('1- 查詢數(shù)據(jù)列表') pprint('2- 新增數(shù)據(jù)列表') pprint('exit- 退出系統(tǒng)') pprint('更多功能、暫未實(shí)現(xiàn)')
編寫數(shù)據(jù)庫連接的創(chuàng)建函數(shù),在修改或查詢數(shù)據(jù)時(shí)直接調(diào)用。
def cteate_connection(): ''' 創(chuàng)建數(shù)據(jù)庫連接 :return: ''' connection = mysql.connect(host='127.0.0.1', user='root', password='root', database='data_boc') return connection
編寫保存數(shù)據(jù)的函數(shù)用于數(shù)據(jù)列表新增功能實(shí)現(xiàn)。
def set_data(): ''' 新增數(shù)據(jù)保存 :return: ''' pprint('當(dāng)前進(jìn)入[2- 新增數(shù)據(jù)列表]') id = input('輸入數(shù)據(jù)編號(hào)') id = int(id) boc_address = str(input('輸入詳細(xì)地址')) boc_code = str(input('輸入具體編碼')) boc_email = str(input('輸入正確郵箱')) boc_name = str(input('輸入數(shù)據(jù)名稱')) pprint('數(shù)據(jù)輸入完成,開始保存...') '''創(chuàng)建數(shù)據(jù)庫接連''' connection = cteate_connection() cursor = connection.cursor() insert_sql = "insert into boc(id_,boc_address,boc_code,boc_email,boc_name) values('%d','%s','%s',%s,%s)" % ( id, boc_address, boc_code, boc_email, boc_name) try: cursor.execute(insert_sql) connection.commit() except: connection.rollback() print("數(shù)據(jù)保存出現(xiàn)異常...") connection.close() pprint('數(shù)據(jù)保存完成...')
編寫數(shù)據(jù)列表的查詢功能函數(shù)。
def get_data(): pprint('當(dāng)前進(jìn)入[1- 查詢數(shù)據(jù)列表]') '''創(chuàng)建數(shù)據(jù)庫連接''' connection = cteate_connection() cursor = connection.cursor() select_sql = "select * from boc" res_list = [] try: cursor.execute(select_sql) res = cursor.fetchall() for row in res: id = row[0] boc_address = row[1] boc_code = row[2] boc_email = row[3] boc_name = row[4] res_list.append({'數(shù)據(jù)編號(hào)':id,'詳細(xì)地址':boc_address,'具體編碼':boc_code,'郵箱地址':boc_email,'名稱':boc_name}) pprint('數(shù)據(jù)結(jié)果:{}'.format(res_list)) connection.commit() except: print("數(shù)據(jù)查詢出現(xiàn)異常...") connection.close() pprint('數(shù)據(jù)查詢完成...')
啟動(dòng)應(yīng)用?
if __name__ == '__main__':
while True:
current_menu()
chiose_code = input('輸入菜單編號(hào):')
if str(chiose_code) == '2':
set_data()
if str(chiose_code) == '1':
get_data()
if str(chiose_code) == 'exit':
break
到此這篇關(guān)于基于Python實(shí)現(xiàn)一個(gè)簡(jiǎn)易的數(shù)據(jù)管理系統(tǒng)的文章就介紹到這了,更多相關(guān)Python數(shù)據(jù)管理系統(tǒng)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python使用Redis實(shí)現(xiàn)作業(yè)調(diào)度系統(tǒng)(超簡(jiǎn)單)
Redis作為內(nèi)存數(shù)據(jù)庫的一個(gè)典型代表,已經(jīng)在很多應(yīng)用場(chǎng)景中被使用,這里僅就Redis的pub/sub功能來說說怎樣通過此功能來實(shí)現(xiàn)一個(gè)簡(jiǎn)單的作業(yè)調(diào)度系統(tǒng)。這里只是想展現(xiàn)一個(gè)簡(jiǎn)單的想法,所以還是有很多需要考慮的東西沒有包括在這個(gè)例子中,比如錯(cuò)誤處理,持久化等2016-03-03安裝conda搭建python環(huán)境保姆級(jí)教程(超詳細(xì)!)
這篇文章主要給大家介紹了關(guān)于安裝conda搭建python環(huán)境保姆級(jí)教程的相關(guān)資料,conda可以理解為一個(gè)工具,也是一個(gè)可執(zhí)行命令,其核心功能是包管理和環(huán)境管理,需要的朋友可以參考下2023-11-11python 實(shí)現(xiàn)二維數(shù)組的索引、刪除、拼接操作
這篇文章主要介紹了python 實(shí)現(xiàn)二維數(shù)組的索引、刪除、拼接操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2021-05-05Python 20行簡(jiǎn)單實(shí)現(xiàn)有道在線翻譯的詳解
這篇文章主要介紹了Python實(shí)現(xiàn)有道在線翻譯的方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-05-05Flask交互基礎(chǔ)(GET、 POST 、PUT、 DELETE)的使用
這篇文章主要介紹了Flask交互基礎(chǔ)(GET、 POST 、PUT、 DELETE)的使用,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04python GUI庫圖形界面開發(fā)之PyQt5窗口背景與不規(guī)則窗口實(shí)例
這篇文章主要介紹了python GUI庫圖形界面開發(fā)之PyQt5窗口背景與不規(guī)則窗口實(shí)例,需要的朋友可以參考下2020-02-02