新闻管理系统(三)封装Service和App

Service模块

  • service_user.py
#!/usr/bin/python3
# -*- coding: utf-8 -*-

from vega.db.user_dao import UserDao

class UserService(object):
    __user_dao=UserDao()

    # 验证用户登录
    def login(self, username, password):
        result=self.__user_dao.login(username,password)
        return result

    # 根据用户名搜索角色
    def search_user_role(self,username):
        role=self.__user_dao.search_user_role(username)
        return role

APP程序的作用

  • APP程序用来处理控制台的输入和输出的,因为控制台的操作询问是轮询执行的,所以我们需要在APP中使用死循环
  • app.py
#!/usr/bin/python3
# -*- coding: utf-8 -*-

import os
import sys
import time
from colorama import Fore,Style
from getpass import getpass
from service.user_service import UserService


__user_service=UserService()

while True:
    os.system('cls')  # 清理控制台
    print(Fore.LIGHTBLUE_EX,"\n\t=======================")
    print(Fore.LIGHTBLUE_EX,"\n\t欢迎使用新闻管理系统")
    print(Fore.LIGHTBLUE_EX,"\n\t=======================")
    print(Fore.LIGHTGREEN_EX,"\n\t1.登录系统")
    print(Fore.LIGHTGREEN_EX,"\n\t2.退出系统")
    print(Style.RESET_ALL)
    opt=input("\n\t输入操作编号:")

    if opt=="1":
        username=input("\n\t用户名:")
        password=getpass("\n\t密码:")
        result=__user_service.login(username,password)  # getpass可以隐藏密码
        # 登录成功
        if result:
            # 查询角色
            role=__user_service.search_user_role(username)
            os.system("cls")
            while True:
                if role=="新闻编辑":
                    print("test")
                elif role=="管理员":
                    print(Fore.LIGHTGREEN_EX,"\n\t1.新闻管理")
                    print(Fore.LIGHTGREEN_EX,"\n\t2.用户管理")
                    print(Fore.LIGHTRED_EX,"\n\tback.退出登录")
                    print(Fore.LIGHTRED_EX,"\n\texit.退出系统")
                    print(Style.RESET_ALL)
                    opt = input("\n\t输入操作编号:")
                    if opt=='1':
                        while True:
                            os.system("cls")
                            print(Fore.LIGHTGREEN_EX, "\n\t1.审批新闻")
                            print(Fore.LIGHTGREEN_EX, "\n\t2.删除新闻")
                            print(Fore.LIGHTRED_EX, "\n\tback.返回上一层")
                            print(Style.RESET_ALL)
                            opt = input("\n\t输入操作编号:")  # TODO:新闻操作

                    elif opt=="back":
                        break
                    elif opt=="exit":
                        sys.exit(0)
        else:
            print("\n\t登录失败(3秒自动返回)")
            time.sleep(3)
    elif opt=="2":
        sys.exit(0)  # 退出系统

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值