新闻管理系统的项目

工具类

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



主要代码

from db_util import DBUtil
from datetime import datetime
import datetime
import random
today_1 = datetime.date.today()
def menu():
    '''登陆菜单'''

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


def admin_menu():
    print("1.添加新闻")
    print("2.删除新闻")
    print("3.修改新闻")
    print("4.退出")

def yonghu_menu():
    print("1.根据关键字查询新闻")
    print("2.新闻序号查询新闻")
    print("3.按照类型查看新闻")
    print("4.退出")







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
    quanxian = input("请输入您要注册的权限 1代表管理员,2代表普通人")
    db = DBUtil('39.98.39.173', 13306, 'root', 'root', '刘烽吉')
    sql ="insert into dome_1 values(default ,%s,%s,%s)"
    parms = (str_2,num,quanxian)
    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("登录成功")
    quanxian(name,pwd)

def quanxian(name,pwd):
    db = DBUtil('39.98.39.173', 13306, 'root', 'root', '刘烽吉')
    sql = "select quanxian from dome_1 where users = %s and passwd = %s"
    params = [name,pwd]
    result = db.get_one(sql,params)
    if '1' in result:
        print("欢迎您,管理员")
        while 1:
            admin_menu()

            num = input("请输入您要执行的操作")
            if num == "1":
                add_new()
            elif num == "2":
                del_new()
            elif num == "3":
                update_new()
            elif num == "4":
                break
    elif '2' in result:
        while 1:
            yonghu_menu()

            num = input("请输入您要执行的操作")
            if num == '1':
                select_1()
            elif num == "2":
                select_2()
            elif num == "3":
                type()
            elif num == "4":
                break
    else:
        print("输入错误")





'''管理员的方法'''

def add_new():
    '''增加新闻'''
    title = input("请输入新闻的标题")
    author = input("请输入作者的名字")
    type = input("请输入新闻的类型")
    db = DBUtil('39.98.39.173', 13306, 'root', 'root', '刘烽吉')
    sql = "insert into new_1(title,creat_time,author,type_1,count_1) values (%s,%s,%s,%s,%s)"
    params = [title,today_1,author,type,1]
    result = db.my_execute(sql,params)
    if result is not None:
        print("增加成功")



def del_new():
    '''删除新闻'''
    title = input("请输入要删除的新闻")
    db = DBUtil('39.98.39.173', 13306, 'root', 'root', '刘烽吉')
    sql = "delete from new_1 where title = %s"
    parms = [title]
    result = db.my_execute(sql,parms)
    if result is not None:
        print("删除成功")



def update_new():
    title = input("请输入要修改的新闻的标题")
    new_title = input("请输入新的标题")
    new_author = input("请输入新的作者")
    type = input("请输入新的类型")
    db = DBUtil('39.98.39.173', 13306, 'root', 'root', '刘烽吉')
    sql = "update new_1 set title = %s, author = %s,type_1 = %s where title = %s"
    parms = [new_title,new_author,type]
    result = db.my_execute(sql,parms)
    if result is not None:
        print("修改成功")



'''用户的方法'''
def select_1():
    title = input("请输入要查询的标题关键字")
    db = DBUtil('39.98.39.173', 13306, 'root', 'root', '刘烽吉')
    parm = '%' + title + '%'
    sql = "select * from new_1 where title like '%s'" % parm
    # parm = [title]
    result = db.get_all(sql, None)

    for i in result:
        result_1 = int(i[5]) + 1
        result_3 = int(i[0])
        sqlq = 'update new_1 set count_1 = %s where id = %s'
        parms = [result_1,result_3]
        result_2 = db.my_execute(sqlq,parms)


    if result is not None:
        print(result)
    else:
        print("无此新闻")



def select_2():
    id = input("请输入要查询的新闻的id")
    db = DBUtil('39.98.39.173', 13306, 'root', 'root', '刘烽吉')
    sql = 'select * from new_1 where id = %s'
    parm = [id]
    result = db.get_one(sql,parm)

    # result_1 = int(result[5]) + 1
    # sqlq = 'update new_1 set count_1 = %s'
    # parms = [result_1]
    # result_2 = db.my_executemany(sqlq, parms)


    result_1 = int(result[5]) + 1
    result_3 = int(result[0])
    sqlq = 'update new_1 set count_1 = %s where id = %s'
    parms = [result_1, result_3]
    result_2 = db.my_execute(sqlq, parms)
    if result is not None:
        print(result)
    else:
        print("无此新闻")


def type():
    type= input("请输入要查询的类型")
    db = DBUtil('39.98.39.173', 13306, 'root', 'root', '刘烽吉')
    sql = 'select * from new_1 where type_1 = %s'
    parm = [type]
    result = db.get_all(sql, parm)
    if result is not None:
        print(result)
    else:
        print("无此新闻")
    for i in result:
        result_1 = int(i[5]) + 1
        result_3 = int(i[0])
        sqlq = 'update new_1 set count_1 = %s where id = %s'
        parms = [result_1,result_3]
        result_2 = db.my_execute(sqlq,parms)

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

建表

1.

2.

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