python作业 简单的图书信息管理系统

       作业就是写一个简单 的图书信息管理系统,实现增删改查功能,附带了登录注册功能,就是把上一次的代码直接拿来用了。如下:

主函数:main.py

import pymysql
import getpass
import time
from operate import manage

#查询用户名是否存在
def check(uname):
    namelist = []
    conn1 = pymysql.connect("localhost", "root", "admin", "login", charset='utf8')
    cur = conn1.cursor()
    sql1 = "select uName from logintable"
    cur.execute(sql1)
    results = cur.fetchall()
    for row in results:
        namelist.append(row[0])
    i = 0
    for x in namelist:
        if (uname == x):
            i = 1
            break
    return i

# 注册函数
def register():
    i = 1
    username = ""
    passwd = ""
    while i == 1:
        username = input("请输入用户名:")
        if (check(username) == 1):
            print('该用户名已被占用,请重新输入')
            continue
        if (username.isalnum()):
            break
        else:
            print("用户名只能包含数字与英文字母!!!")
    while i == 1:
        passwd = getpass.getpass("请输入密码:")
        if (len(passwd) > 5 and len(passwd) < 21):
            break
        else:
            print("密码为6至20位!!!")
    pswd = getpass.getpass('请再输入一遍密码:')
    if (passwd == pswd):
        print('注册成功!')
    else:
        print('两次密码不相同,请重新注册!!!')
        register()
    # 打开数据库连接
    conn = pymysql.connect("localhost", "root", "admin", "login", charset='utf8')
    # 使用corsor()方法创建一个游标对象
    cursor = conn.cursor()
    # 使用execute()方法执行sql语句,将注册的信息插入到数据库中
    sql = "INSERT INTO logintable (uName,pw) VALUES (%s,%s)"
    val = (username, passwd)
    # 这两行执行sql语句
    cursor.execute(sql, val)
    conn.commit()#提交数据库执行
    cursor.close()
    conn.close()
    # 返回主界面
    first()

# 登录函数
def login():
    sql = "select * from logintable"
    conn = pymysql.connect("localhost", "root", "admin", "login", charset='utf8')
    cursor = conn.cursor()
    cursor.execute(sql)
    result = cursor.fetchall()
    i = 1
    s = 0
    while i == 1:
        uname = input('请输入用户名:')
        if (check(uname) == 0):
            print('该用户不存在!!!')
            continue
        else:
            while s < 3:
                passwd = getpass.getpass("请输入密码:")
                key = 0
                for row in result:
                    if (uname == row[0] and passwd == row[1]):
                        key = 1
                if (key == 1):
                    print('登录成功!!!')
                    break
                else:
                    print('密码错误!请重新登录!')
                    s = s + 1
                if s == 3:
                    print('账户已锁定!!!请 5 s 后重新登录!!!')
                    time.sleep(5)
        break
    manage()

#主界面函数
def first():
    print('--------------xxx图书信息管理系统------------')
    print('输入序号,进行选择:')
    print('1、注册')
    print('2、登录')
    print('3、退出')
    select = input('请选择: ')
    if select == '1':
        register()
    elif select == '2':
        login()
    elif select == '3':
        exit(0)
    else:
        print('请输入正确序号:')
        first()

first()

增删改查模块 :operate.py

import pymysql
#from sqlConnect import addToMysql,check_bookname,check_author
from mysqlOperate import*
import mysqlOperate

#管理函数
def manage():
    m=1
    while m == 1:
        print("-----------------------图书管理----------------------")
        print("1、查询图书信息")
        print("2、添加图书信息")
        print("3、删除图书信息")
        print("4、修改图书信息")
        print("5、退出")
        select = input("请输入编号选择功能:")
        if select == '1':
            check()
        elif select == '2':
            add()
        elif select == '3':
            delete()
        elif select == '4':
            update()
        elif select == '5':
            exit(0)
        else:
            print("请输入正确序号!!!")

#添加函数
def add():
    print("请输入图书信息:")
    bookname=input("请输入书籍名称:")
    author=input('请输入作者姓名:')
    price=input('请输入价格:')
    addToMysql(bookname,author,price)

#查询函数
def check():
    print("-----------------------查询---------------------")
    print("请选择:")
    print("1、按书名查询     2、按作者查询    3、查询所有图书   (其他任意键返回)")
    select=input('请输入编号:')
    if select=='1':
        bookname = input("请输入书名:")
        check_bookname(bookname)
    elif select=='2':
        authorname=input("请输入作者姓名:")
        check_author(authorname)
    elif select=='3':
        check_all()

#删除函数
def delete():
    print("-----------------------删除----------------------")
    bookname=input("请输入要删除的书名:")
    check_bookname(bookname)
    select=input("确定删除?(请输入y/n):")
    if select=='y':
        delete_book(bookname)
    elif select=='n':
        print("未删除!!!")
    else:
        print("输入错误!!已退出!!!")

#修改函数
def update():
    print("-----------------------修改------------------------")
    bookname=input("请输入要修改的书名:")
    check_bookname(bookname)
    select=input('确定修改?(y/n):')
    if select=='n':
        print('已返回')
    elif select=='y':
        update_book(bookname)

数据库操作模块:mysqlOperate.py

import pymysql
#创建数据库连接
conn=pymysql.connect("localhost","root","admin","login",charset='utf8')
#创建游标对象
cursor=conn.cursor()

#添加图书
def addToMysql(name,author,price):
    str="INSERT INTO bookinfo (bookname,author,price) VALUES (%s,%s,%s)"
    val=(name,author,price)
    cursor.execute(str,val)
    conn.commit()
    print("添加成功")

#按书名查询
def check_bookname(bookName):
    cursor.execute('SELECT * FROM bookinfo WHERE bookname = %s',(bookName,))
    result=cursor.fetchall()
    i = 0
    if result==None:
        print ('该书不存在!!!')
    else:
        for row in result:
            print("-------第%s本书-------" % i)
            print("book_id:", row[0])
            print("书名:", row[1])
            print("作者:", row[2])
            print("价格:", row[3])
            i = i + 1

# 按作者查询
def check_author(author):
    cursor.execute('SELECT * FROM bookinfo WHERE author = %s',(author,))
    result=cursor.fetchall()
    i=1
    if result==None:
        print('该作者不存在!!!')
    else:
        for row in result:
            print('-------第%s本书--------'% i)
            print("book_id:", row[0])
            print("书名:", row[1])
            print("作者:", row[2])
            print("价格:", row[3])
            i = i + 1

#查询所有图书
def check_all():
    cursor.execute('SELECT * FROM bookinfo')
    result=cursor.fetchall()
    i=1
    for row in result:
        print('-------第%s本书--------' % i)
        print("book_id:", row[0])
        print("书名:", row[1])
        print("作者:", row[2])
        print("价格:", row[3])
        i = i + 1

# 删除书籍
def delete_book(bookname):
    cursor.execute('DELETE FROM bookinfo WHERE bookname = %s' ,(bookname,))
    conn.commit()
    print('删除成功!!!')

#修改书籍信息
def update_book(bookname):
    new_bookname=input('请输入修改书名:')
    new_author=input('请输入修改作者名称:')
    new_price=input('请输入修改价格:')
    cursor.execute('UPDATE bookinfo SET bookname=%s,author=%s,price=%s WHERE bookname=%s',(new_bookname,new_author,new_price,bookname))
    conn.commit()
    print('修改成功')

数据库设计:

 bookinfo表

 logintable表:

 

 另外,执行时跟上一次作业一样,通过cmd执行

猜你喜欢

转载自www.cnblogs.com/xixue/p/12510848.html