python实现数据库增删改查
column_dic = {"id": 0, "name": 1, "age": 2, "phone": 3, "job": 4}
def get_show_list(col_condition): # "select age,name"
"""
获取要展示的列名
:param col_condition: 用户输入的select条件
:return: 列名组成的列表
"""
col_info_list = col_condition.strip().split("select") # ["", "age,name"]
col_info_list = [col_info_item for col_info_item in col_info_list if col_info_item.strip()] # ["age,name"]
if col_info_list:
col_info = col_info_list[0].strip() # "age,name"
if "*" in col_info:
return column_dic.keys()
elif col_info:
ret = col_info.split(",") # [" age ","name"]
return [item.strip() for item in ret] # ["age","name"]
else:
print(col_info)
def filter_handler(operate, con): # ">" , "age>22"
selected_list = []
col, val = con.split(operate)
col = col.strip()
val = val.strip()
judge = "int(line_list[column_dic[col]]) %s int(val)" % operate if operate == "<" or operate == ">" \
else "line_list[column_dic[col]] %s val" % operate
f = open("student", encoding="utf-8")
for line in f:
line_list = line.strip().split(",")
if eval(judge):
selected_list.append(line_list)
f.close()
return selected_list
def get_selected_line(con): # con = "age>22"
"""
获取要查找的行,并将每一行作为列表项存储到selected_list
:param con:
:return:
"""
if ">" in con:
selected_list = filter_handler(">", con)
elif "<" in con:
selected_list = filter_handler("<", con)
elif "=" in con:
selected_list = filter_handler("==", con.replace("=", '=='))
elif "like" in con:
selected_list = filter_handler("in", con)
return selected_list
def show(selected_list, show_list):
for selected_item in selected_list:
for col in show_list:
print(selected_item[column_dic[col]], end=" ")
print()
condition = input(">>>") # "select age,name where age>22"
ret = condition.split('where') # ["select age,name", "age>22"]
con = ret[1].strip() # "age>22"
show_list = get_show_list(ret[0]) # ["name", "age"]
selected_list = get_selected_line(con)
show(selected_list, show_list)
python实现数据库增删改查的更多相关文章
- 练习 python之数据库增删改查
# 文件存储时可以这样表示 ## id,name,age,phone,dept,enroll_date# 1,Alex Li,22,13651054608,IT,2013-04-01# 2,Jack ...
- python操作mysql数据库增删改查的dbutils实例
python操作mysql数据库增删改查的dbutils实例 # 数据库配置文件 # cat gconf.py #encoding=utf-8 import json # json里面的字典不能用单引 ...
- Python实现mysql数据库增删改查
利用python操作mysql数据库用法简单,环境配置容易,本文将实现对库增.删.改.查的简易封装! 1. 环境配置 安装第三方包 ,导入模块 mysql.connector pip inst ...
- 数据库学习之数据库增删改查(另外解决Mysql在linux下不能插入中文的问题)(二)
数据库增删改查 增加 首先我们创建一个数据库user,然后创建一张表employee create table employee( id int primary key auto_increment, ...
- Yii2.0高级框架数据库增删改查的一些操作(转)
yii2.0框架是PHP开发的一个比较高效率的框架,集合了作者的大量心血,下面通过用户为例给大家详解yii2.0高级框架数据库增删改查的一些操作 --------------------------- ...
- 2. MongoDB基本操作 —— 用Mongo.exe操作数据库增删改查
一.开篇 传统的关系数据库一般由数据库(database).表(table).记录(record)三个层次概念组成,MongoDB是由数据库(database).集合(collection).文档对象 ...
- go——beego的数据库增删改查
一直都不理解使用go语言的时候,为什么还要自己去装beego,以为使用go便可以解决所有的问题,结果在朋友的点拨下,才意识到: go与beego的关系就好比是nodejs与thinkjs的关系,因此也 ...
- (转)SQLite数据库增删改查操作
原文:http://www.cnblogs.com/linjiqin/archive/2011/05/26/2059182.html SQLite数据库增删改查操作 一.使用嵌入式关系型SQLite数 ...
- Yii2.0高级框架数据库增删改查的一些操作
yii2.0框架是PHP开发的一个比较高效率的框架,集合了作者的大量心血,下面通过用户为例给大家详解yii2.0高级框架数据库增删改查的一些操作 --------------------------- ...
随机推荐
- LAMP环境配置踩坑2外网无法访问
理论上我们配置LAMP环境的时候都会对httpd.config进行更改 vi /etc/httpd/conf/httpd.conf 把override node改成override all 并且开启8 ...
- pyhon 去除列表中重复元素
Python set() 函数 描述 set() 函数创建一个无序不重复元素集,可进行关系测试,删除重复数据,还可以计算交集.差集.并集等. 语法 set 语法: class set([iterabl ...
- 如何使用Office Word 2007以上在写51CTO博客
目前大部分的博客作者在用Word写博客这件事情上都会遇到以下3个痛点: 1.所有博客平台关闭了文档发布接口,用户无法使用Word,Windows Live Writer等工具来发布博客.使用Word写 ...
- lambda distinct
public ActionResult Index() { IList<RegisterModel> regList = new List<RegisterModel>() { ...
- selenium 简单指南
1.1 下载selenium2.0的包 官方download包地址:http://code.google.com/p/selenium/downloads/list 官方User Guide: h ...
- Docker Warning : the backing xfs filesystem is formatted without d_type support
CentOS7 下安装配置 Docker,遇到如下的WARNING, WARNING: overlay: the backing xfs filesystem is formatted without ...
- Linux Guard Service - 杀死守护进程
杀死某个子进程 杀死守护进程的子进程后,改进程会变为僵尸进程 14087 ? Ss 0:00 ./test4-1 14088 ? S 0:00 \_ ./test4-1 14089 ? S 0:00 ...
- 自己从0开始学习Unity的笔记 V (C#的数组练习)
今天练习了数组输入,先从最简单的开始,因为我输入完这些之后,觉得应该有更简单的方法,先来介绍一下我做的练习代码 //做一个最多能容纳10个数字的,用户可以输入任意1-10个数字,判断长度,输出数字 ] ...
- MVC中用jQuery加BootStrap实现动态增加删除文本输入框!
http://www.freejs.net/article_biaodan_278.html 这是在网上找到方法,我修改了一下实合我的项目,发博只为收藏记录并加深记忆. 修改后效果如下 @model ...
- MVC页面移除HTTP Header中服务器信息
默认情况下,每一个MVC请求的HTTP Header中都会包含着当前服务器的一些信息,出于安全还是性能还是处女座的强迫症等等,都想把这些信息移除掉,增加一些应用程序的神秘感,如下,默认情况下Chrom ...