体温登记项目

工具类的代码

import  pymysql  # 导入数据库驱动模块!

class DBUtil():
    #db =  MysqlHelper('39.98.39.173',13306,'root','root','1909C2')
    def __init__(self,host,port,user,passwd,db,charset='utf8'):
        self.host= host
        self.port = port
        self.user = user
        self.passwd = passwd
        self.db = db
        self.charset=charset
        #self.conn = None

    def  connect(self):
        '''功能1: 获取连接'''
        self.conn = pymysql.connect(host=self.host,port=self.port,user=self.user,passwd=self.passwd,db=self.db,charset=self.charset)
        self.cursor =self.conn.cursor()

    def close(self):
        '''功能2:释放资源'''
        self.cursor.close() #关游标
        self.conn.close()# 关连接

    def my_execute(self,sql,params):
        '''
         增删改通用功能
        :param sql:  sql语句
        :param params: 参数列表
        :return: num 影响行数
        '''
        num =0
        # 1. 打开连接
        self.connect()
        num = self.cursor.execute(sql,params)
        self.conn.commit()
        self.close() #释放资源
        return num


    def my_executemany(self,sql,params):
        '''
         通用批量插入
        :param sql:  sql语句
        :param params: 参数列表[(),(),]
        :return: num 影响行数
        '''
        num =0
        # 1. 打开连接
        self.connect()
        num = self.cursor.executemany(sql,params)
        self.conn.commit()
        self.close() #释放资源
        return num

    def get_one(self,sql,params):
        '''
        查询1条
        :param sql: sql语句
        :param params: 参数列表
        :return: 1条结果
        '''
        result =None
        #1.打开链接
        self.connect()
        # 2.执行查询
        self.cursor.execute(sql,params)
        # 3 逐行抓取
        result = self.cursor.fetchone()
        #4.释放资源
        self.close()
        return result

    def get_all(self, sql, params):
        '''
        查询所有
        :param sql: sql语句
        :param params: 参数列表
        :return: 1条结果
        '''
        result = ()
        self.connect()
        self.cursor.execute(sql, params)
        result = self.cursor.fetchall()
        self.close()
        return result

体温登记功能的代码

# 1. 导入工具类
from db_util import DBUtil #导入数据库的# 工具类
import  datetime # 导入日期
import random
import  time

current_day = datetime.date.today() # 今天日期 2020-11-08


def menu():
    '''登陆菜单'''

    print('1. 登陆')
    print('2. 注册')

def zhuce():
    num = input("请输入您的密码")
    if len(num)<6:
        print("密码必须是6位数")
    str_2 = ''
    while 1:
        num_1 = str(random.randint(1,10))
        str_2 += num_1
        if len(str_2)==4:
            print(f'您的账号是{str_2}')
            break
    db = DBUtil('39.98.39.173', 13306, 'root', 'root', '刘烽吉')
    sql ="insert into dome_1 values(default ,%s,%s)"
    parms = (str_2,num)
    result =db.my_execute(sql,parms)
    if result is not None:
        print("注册成功")



def login():
    '''登陆功能'''
    # 创建数据库对象
    name = input("请输入您的账号")
    pwd = input("请输入您的密码")
    db = DBUtil('39.98.39.173', 13306, 'root', 'root', '刘烽吉')
    sql ="select * from dome_1 where users =%s and passwd =%s"
    params =[name,pwd]
    result =db.get_one(sql,params)
    if result is not None:
        print("登录成功")
        while 1:
            menu_1()




def menu_1():
    '''系统菜单'''

    print('1. 生成今日体温记录')
    print('2. 根据名字修改体温记录')
    print('3.根据日期查询统计')



    num = int(input('请选择菜单:'))

    if num==1:
        gener_jilu() #生成今日体温记录
    elif num==2:
        update_jilu() #根据名字修改
    elif num==3:
        mycount() #统计
    else:
        print('输入错误!')


def  gener_jilu():
    print(f'生成:{current_day}体温记录!')
    # 1. 创建数据库对象
    db = DBUtil('39.98.39.173', 13306, 'root', 'root', '刘烽吉')


    #判断是否生成过
    result =db.get_one('select * from  biaoji where time_1=%s',(current_day))
    # print(result)
    if result is  None:
        try:
            students = db.get_all("select * from students_2",None)
            print(students)
            #  3. 生成记录
            list_jilu = []
            for stu in students:
                jilu = (stu[0], current_day, 1, '正常')  # 记录
                list_jilu.append(jilu)
            #print(f'今日体温记录:{len(list_jilu)},条')
            # 4.调用批量插入
            sql = "insert into temp_1(s_id,creat_time,temp,manage) values(%s,%s,%s,%s)"
            db.my_executemany(sql, list_jilu)
            # 生成一条标记!
            db.my_execute('insert into biaoji(time_1,manage_1) values(%s,%s)', (current_day, 1))
            print('无错误生成成功!!')
        except Exception as e:
            print(e)
    else:
        print('今日已生成!')



def update_jilu():
    print('根据名字修改记录资料')
    name = input("请输入要修改的学生的姓名")
    time = input("请输入修改的时间")
    db = DBUtil('39.98.39.173', 13306, 'root', 'root', '刘烽吉')

    result = db.get_one("select id from students_2 where name = %s",name)
    temp_1 = input("请输入修改以后的状态  回车不修改")
    num = db.my_execute("update temp_1 set temp = %s where s_id = %s and creat_time = %s",(temp_1,result,time))
    if num is not None:
        print("状态修改成功")
    manage_1 = input("请输入修改后的异常信息  回车不修改")
    num_1 = db.my_execute("update temp_1 set manage = %s where s_id = %s and creat_time = %s",(manage_1,result,time))
    if num_1 is not None:
        print("修改成功")



def mycount():
    print('统计!')
    start = input("请输入开始的时间")
    edd = input("请输入结束的时间")
    num_1 = input("请输入要查询的状态")
    db = DBUtil('39.98.39.173', 13306, 'root', 'root', '刘烽吉')
    num = db.get_all("select * from temp_1 where %s < creat_time < %s and temp = %s",(start,edd,num_1))
    print(f'在{start}到{edd}时间段内,状态为{num_1}的人有%s个人'%len(num))

while 1:
    menu()
    num = input("请输入您要执行的操作")
    if num == "1":
        login()
    elif num == "2":
        zhuce()


关于数据库建表,代码中可以找到

posted @ 2020-11-17 11:13  千足  阅读(126)  评论(0)    收藏  举报