吴裕雄--python学习笔记:通过sqlite3 进行文字界面学生管理
import sqlite3
conn = sqlite3.connect('E:\\student.db')
print("Opened database successfully")
c = conn.cursor()
c.execute('''CREATE TABLE if not exists STUDENT
(ID INT PRIMARY KEY NOT NULL,
STU_NAME CHAR(20),
AGE INT NOT NULL,
ADDRESS CHAR(50));''')
print ("Table created successfully")
conn.commit()
Opened database successfully
Table created successfully
print("Opened database successfully")
c.execute("INSERT INTO STUDENT(ID,STU_NAME,AGE,ADDRESS) VALUES(20154071115,'dch',22,'1-223')")
c.execute("INSERT INTO STUDENT(ID,STU_NAME,AGE,ADDRESS) VALUES(20154071112,'fwx',22,'1-222') ")
c.execute("INSERT INTO STUDENT(ID,STU_NAME,AGE,ADDRESS) VALUES(20154071111,'cg',22,'1-223') ")
c.execute("INSERT INTO STUDENT(ID,STU_NAME,AGE,ADDRESS) VALUES(20154071110,'wyf',22,'1-222') ")
conn.commit()
print("Records created successfully")
Opened database successfully
Records created successfully
cursor = c.execute("SELECT id,STU_NAME,address FROM student")
for row in cursor:
print("ID = ",row[0])
print("NAME = ",row[1])
print("ADDRESS = ",row[2])
print("Operation done successfully")
#conn.close()
def display_menu():
print("学生表操作界面")
print("---------------------")
print("1.增添学生信息")
print("2.查询学生有关资料")
print("3.修改学生有关信息")
print("4.删除学生信息")
print("5.查询现在的学生信息")
print("0.退出")
print("---------------------")
ID = 20154071115
NAME = dch
ADDRESS = 1-223
ID = 20154071112
NAME = fwx
ADDRESS = 1-222
ID = 20154071111
NAME = cg
ADDRESS = 1-223
ID = 20154071110
NAME = wyf
ADDRESS = 1-222
Operation done successfully
def append_data():
id = int(input("请输入新学生的学号:"))
name = str(input("请输入新学生的名字"))
age = int(input("请输入新学生的年龄"))
address = str(input("请输入新学生的地址"))
sqlStr = "select * from student where id = {};".format(id)
cursor = conn.execute(sqlStr)
if len(cursor.fetchall())>0:
print("列表中已经有这个学生了")
else:
sqlStr = "insert into student(ID,STU_NAME,AGE,ADDRESS) VALUES ({},'{}',{},'{}')".format(id,name,age,address)
conn.execute(sqlStr)
conn.commit()
def update_date():
id = int(input("请输入你要修改的学号:"))
sqlStr = "select * from student where id = {};".format(id)
cursor = conn.execute(sqlStr)
rows = cursor.fetchall()
if len(rows) > 0:
print("该学生的姓名是",rows[0][1])
name = input("请输入学生的新名字")
age = int(input("请输入学生的新年龄"))
address = input("请输入学生的新地址")
sqlStr = "update student set STU_NAME = '{}',age = '{}',address = '{}' where id = {}".format(name,age,address,id)
conn.execute(sqlStr)
conn.commit()
print("修改成功")
else:
print("不存在该学生")
def delete_data():
id = int(input("请输入要删除的学生id:"))
sqlStr = "select * from student where id = {};".format(id)
cursor = conn.execute(sqlStr)
rows = cursor.fetchall()
if len(rows) > 0:
print("该学生的姓名是",rows[0][1])
s = int(input("请确认删除(如果删除请输入'1',不删除请输入'0'):"))
if s == 1:
sqlStr = "delete from student where id = {}".format(id)
conn.execute(sqlStr)
print("删除成功")
else:
return display_menu()
def select_data():
id = int(input("请输入要修改的学生id:"))
sqlStr = "select * from student where id = {};".format(id)
cursor = conn.execute(sqlStr)
rows = cursor.fetchall()
if len(rows) > 0:
print("该学生信息如下:")
print(rows)
else:
print("该学生不存在")
def display_data():
cursor = conn.execute('SELECT * FROM student;')
for row in cursor:
print(row)
while True:
display_menu()
choice = int(input("请输入你的选择"))
if choice == 0:
conn.close()
break
elif choice == 2:
select_data()
elif choice == 3:
update_date()
elif choice == 4:
delete_data()
elif choice == 5:
display_data()
elif choice == 1:
append_data()
else:break
吴裕雄--python学习笔记:通过sqlite3 进行文字界面学生管理的更多相关文章
- 吴裕雄--python学习笔记:sqlite3 模块
1 sqlite3.connect(database [,timeout ,other optional arguments]) 该 API 打开一个到 SQLite 数据库文件 database 的 ...
- 吴裕雄--python学习笔记:sqlite3 模块的使用与学生信息管理系统
import sqlite3 cx = sqlite3.connect('E:\\student3.db') cx.execute( '''CREATE TABLE StudentTable( ID ...
- 吴裕雄--python学习笔记:爬虫基础
一.什么是爬虫 爬虫:一段自动抓取互联网信息的程序,从互联网上抓取对于我们有价值的信息. 二.Python爬虫架构 Python 爬虫架构主要由五个部分组成,分别是调度器.URL管理器.网页下载器.网 ...
- 吴裕雄--python学习笔记:爬虫包的更换
python 3.x报错:No module named 'cookielib'或No module named 'urllib2' 1. ModuleNotFoundError: No module ...
- 吴裕雄--python学习笔记:爬虫
import chardet import urllib.request page = urllib.request.urlopen('http://photo.sina.com.cn/') #打开网 ...
- 吴裕雄--python学习笔记:os模块函数
os.sep:取代操作系统特定的路径分隔符 os.name:指示你正在使用的工作平台.比如对于Windows,它是'nt',而对于Linux/Unix用户,它是'posix'. os.getcwd:得 ...
- 吴裕雄--python学习笔记:os模块的使用
在自动化测试中,经常需要查找操作文件,比如说查找配置文件(从而读取配置文件的信息),查找测试报告(从而发送测试报告邮件),经常要对大量文件和大量路径进行操作,这就依赖于os模块. 1.当前路径及路径下 ...
- 吴裕雄--python学习笔记:BeautifulSoup模块
import re import requests from bs4 import BeautifulSoup req_obj = requests.get('https://www.baidu.co ...
- Python学习笔记(十二)—Python3中pip包管理工具的安装【转】
本文转载自:https://blog.csdn.net/sinat_14849739/article/details/79101529 版权声明:本文为博主原创文章,未经博主允许不得转载. https ...
随机推荐
- beta函数与置信度估计
可信度的估计 二项分布中的\(p\) 服从Beta分布 $ {\rm beta}(\alpha, \beta)$, 密度函数 \(\frac1{B(\alpha, \beta)} x^{\alpha- ...
- Gradle project sync failed. Please fix your project and try again
https://stackoverflow.com/questions/29808199/error-running-android-gradle-project-sync-failed-please ...
- UML-迭代1-基础
1.原则 1).拆分成多个按时间定量.风险驱动的迭代(细化1.细化2.细化3.细化4) 2).在多个迭代中,对同一用例增量开发. 2.最佳实践 设计人员:对架构的核心和风险做适当设计.实现和测试 研发 ...
- Java之同步方法处理继承Thread类的线程安全问题
/** * 使用同步方法处理继承Thread类的方式中的线程安全问题 * */class Window4 extends Thread { private static int ticket = 10 ...
- emacs 配置文件
使用方式: git clone 到本地,把 emacs 复制到 ~/.emacs.d 打开 emacs 会自动安装包 https://github.com/NorseLZJ/lzj-config/tr ...
- POJ 1734 Sightseeing trip(Floyd)
题目传送门 题目中文翻译: Description 桑给巴尔岛上的阿德尔顿镇有一家旅行社,它已决定为其客户提供除了许多其他名胜之外的景点.为了尽可能地从景点赚取收入,该机构已经接受了一个精明的决定:有 ...
- 1027A. Palindromic Twist#变形回文串
题目内容:http://codeforces.com/contest/1027/problem/A 题目解析:输入T组字符串,每个字符串都必须改变一次,每个字母改变的规则是变成相邻的字母,字母a只能变 ...
- 第一行代码近期bug及解决
Android学习笔记(5)----启动 Theme.Dialog 主题的Activity时程序崩溃的解决办法https://www.cnblogs.com/dongling/p/6476308.ht ...
- 牛客寒假算法基础集训营1B题
链接:https://ac.nowcoder.com/acm/contest/317/B 来源:牛客网 题目描述 小a非常喜欢204204这个数字,因为′a′+′k′=204′a′+′k′=204. ...
- HTTP协议解析小白文
1. 什么是HTTP协议? HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本 ...