python mysql项目实战及框架搭建过程

2021-08-23 0 730

前言

python+mysql.connector,demo实战

框架搭建

说实话,其实没有使用到框架,只是用了, python+mysql.connector模块
首先在开始虚拟环境:

(vega-j-vI5SDr) (vega) D:\\test\\python-mysql\\python-mysql\\vega>pip install mysql.connector
Processing c:\\users\\administrator\\appdata\\local\\pip\\cache\\wheels\\7b\\14\\39\\5aad423666e827dfe9a1fbcd111ac17171e7c9865d570780ce\\mysql_connector-2.2.9-cp39-cp39-win_amd64.whl
Installing collected packages: mysql.connector
Successfully installed mysql.connector

python mysql项目实战及框架搭建过程

源代码地址

代码实现 创建mysql连接池

#!/usr/bin/env python
# _*_ coding: utf-8 _*_
# @Time : 2021/6/6 13:16
# @Author : zhaocunwei
# @Version:V 0.1
# @File : mysql_db.py
# @desc :

import mysql.connector.pooling

__config = {
    \"host\": \"localhost\",
    \"port\": 3306,
    \"user\": \"root\",
    \"password\": \"root\",
    \"database\": \"vega\"
}

try:
    pool = mysql.connector.pooling.MySQLConnectionPool(
        **__config,
        pool_size=10
    )
except Exception as e:
    print(e)

SQL脚本:

/*
Navicat MariaDB Data Transfer

Source Server         : localhost_3306
Source Server Version : 100120
Source Host           : localhost:3306
Source Database       : vega

Target Server Type    : MariaDB
Target Server Version : 100120
File Encoding         : 65001

Date: 2018-11-27 19:35:26
*/

SET FOREIGN_KEY_CHECKS=0;

-- ----------------------------
-- Table structure for t_news
-- ----------------------------
DROP TABLE IF EXISTS `t_news`;
CREATE TABLE `t_news` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `title` varchar(40) NOT NULL,
  `editor_id` int(10) unsigned NOT NULL,
  `type_id` int(10) unsigned NOT NULL,
  `content_id` char(12) NOT NULL,
  `is_top` tinyint(3) unsigned NOT NULL,
  `create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `state` enum(\'草稿\',\'待审批\',\'已审批\',\'隐藏\') NOT NULL,
  PRIMARY KEY (`id`),
  KEY `editor_id` (`editor_id`),
  KEY `type_id` (`type_id`),
  KEY `state` (`state`),
  KEY `create_time` (`create_time`),
  KEY `is_top` (`is_top`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;

-- ----------------------------
-- Records of t_news
-- ----------------------------
INSERT INTO `t_news` VALUES (\'1\', \'新闻标题1\', \'2\', \'1\', \'1\', \'1\', \'2018-11-22 18:55:56\', \'2018-11-22 18:55:56\', \'待审批\');

-- ----------------------------
-- Table structure for t_role
-- ----------------------------
DROP TABLE IF EXISTS `t_role`;
CREATE TABLE `t_role` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `role` varchar(20) NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `role` (`role`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;

-- ----------------------------
-- Records of t_role
-- ----------------------------
INSERT INTO `t_role` VALUES (\'2\', \'新闻编辑\');
INSERT INTO `t_role` VALUES (\'1\', \'管理员\');

-- ----------------------------
-- Table structure for t_type
-- ----------------------------
DROP TABLE IF EXISTS `t_type`;
CREATE TABLE `t_type` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `type` varchar(20) NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `type` (`type`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;

-- ----------------------------
-- Records of t_type
-- ----------------------------
INSERT INTO `t_type` VALUES (\'2\', \'体育\');
INSERT INTO `t_type` VALUES (\'5\', \'历史\');
INSERT INTO `t_type` VALUES (\'4\', \'娱乐\');
INSERT INTO `t_type` VALUES (\'3\', \'科技\');
INSERT INTO `t_type` VALUES (\'1\', \'要闻\');

-- ----------------------------
-- Table structure for t_user
-- ----------------------------
DROP TABLE IF EXISTS `t_user`;
CREATE TABLE `t_user` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `username` varchar(20) NOT NULL,
  `password` varchar(500) NOT NULL,
  `email` varchar(100) NOT NULL,
  `role_id` int(10) unsigned NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `username` (`username`),
  KEY `username_2` (`username`)
) ENGINE=InnoDB AUTO_INCREMENT=14 DEFAULT CHARSET=utf8;

-- ----------------------------
-- Records of t_user
-- ----------------------------
INSERT INTO `t_user` VALUES (\'1\', \'admin\', \'3E6BC27A781F0AC08BCFD78CC3DCE4CA\', \'admin@163.com\', \'1\');
INSERT INTO `t_user` VALUES (\'2\', \'scott\', \'3E6BC27A781F0AC08BCFD78CC3DCE4CA\', \'scott@163.com\', \'1\');
INSERT INTO `t_user` VALUES (\'3\', \'test_1\', \'3E6BC27A781F0AC08BCFD78CC3DCE4CA\', \'test_1@163.com\', \'2\');
INSERT INTO `t_user` VALUES (\'4\', \'test_2\', \'3E6BC27A781F0AC08BCFD78CC3DCE4CA\', \'test_2@163.com\', \'2\');
INSERT INTO `t_user` VALUES (\'5\', \'test_3\', \'3E6BC27A781F0AC08BCFD78CC3DCE4CA\', \'test_3@163.com\', \'2\');
INSERT INTO `t_user` VALUES (\'6\', \'test_4\', \'3E6BC27A781F0AC08BCFD78CC3DCE4CA\', \'test_4@163.com\', \'2\');
INSERT INTO `t_user` VALUES (\'7\', \'test_5\', \'3E6BC27A781F0AC08BCFD78CC3DCE4CA\', \'test_5@163.com\', \'2\');
INSERT INTO `t_user` VALUES (\'8\', \'test_6\', \'3E6BC27A781F0AC08BCFD78CC3DCE4CA\', \'test_6@163.com\', \'2\');
INSERT INTO `t_user` VALUES (\'9\', \'test_7\', \'3E6BC27A781F0AC08BCFD78CC3DCE4CA\', \'test_7@163.com\', \'2\');
INSERT INTO `t_user` VALUES (\'10\', \'test_8\', \'3E6BC27A781F0AC08BCFD78CC3DCE4CA\', \'test_8@163.com\', \'2\');
INSERT INTO `t_user` VALUES (\'11\', \'test_9\', \'3E6BC27A781F0AC08BCFD78CC3DCE4CA\', \'test_9@163.com\', \'2\');
INSERT INTO `t_user` VALUES (\'12\', \'test_10\', \'3E6BC27A781F0AC08BCFD78CC3DCE4CA\', \'test_10@163.com\', \'2\');
INSERT INTO `t_user` VALUES (\'13\', \'test_11\', \'3E6BC27A781F0AC08BCFD78CC3DCE4CA\', \'test_11@163.com\', \'2\');

创建DAO程序

python mysql项目实战及框架搭建过程

#!/usr/bin/env python
# _*_ coding: utf-8 _*_
# @Time : 2021/6/6 13:24
# @Author : zhaocunwei
# @Version:V 0.1
# @File : user_dao.py
# @desc : 用户

from db.mysql_db import pool


class UserDao:
    # 验证用户登录
    def login(self, username, password):
        try:
            con = pool.get_connection()
            cursor = con.cursor()
            sql = \"SELECT COUNT(*) FROM t_user WHERE username=%s AND \" \\
                  \"AES_DECRYPT(UNHEX(password),\'HelloWorld\')=%s\"
            cursor.execute(sql, (username, password))
            count = cursor.fetchone()[0]
            return True if count == 1 else False
        except Exception as e:
            print(e)
        finally:
            if \"con\" in dir():
                con.close()

    # 查询用户角色
    def search_user_role(self, username):
        try:
            con = pool.get_connection()
            cursor = con.cursor()
            sql = \"SELECT r.role FROM t_user u JOIN t_role r ON u.role_id=r.id\" \\
                  \"WHERE u.username=%s\"
            cursor.execute(sql, (username))
            role = cursor.fetchone()[0]
            return role
        except Exception as e:
            print(e)
        finally:
            if \"con\" in dir():
                con.close()

创建service层程序

#!/usr/bin/env python
# _*_ coding: utf-8 _*_
# @Time : 2021/6/6 13:57
# @Author : zhaocunwei
# @Version:V 0.1
# @File : user_service.py
# @desc :

from db.user_dao import UserDao


class UserService:
    # 创建私有对象
    __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

安装变色的模块,O(∩_∩)O哈哈~

(vega-j-vI5SDr) (vega) D:\\test\\python-mysql\\python-mysql\\vega>pip install colorama
Collecting colorama
  Using cached colorama-0.4.4-py2.py3-none-any.whl (16 kB)
Installing collected packages: colorama
Successfully installed colorama-0.4.4

CMD模拟登陆

#!/usr/bin/env python
# _*_ coding: utf-8 _*_
# @Time : 2021/6/6 14:08
# @Author : zhaocunwei
# @Version:V 0.1
# @File : app.py
# @desc : 控制台程序

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

__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)
        # 登录成功
        if result == True:
            # 查询角色
            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\\tabck.退出登录\")
                    print(Fore.LIGHTRED_Ex, \"\\n\\texit.退出系统\")
                    print(Style.RESET_ALL)
                    opt = input(\"\\n\\t输入操作编号:\")
        else:
            print(\"\\n\\t登录失败\")
    elif opt == \"2\":
        sys.exit(0)

python mysql项目实战及框架搭建过程

from db.mysql_db import pool

class NewsDao:
    #查询待审批新闻列表
    def search_unreview_list(self,page):
        try:
            con=pool.get_connection()
            cursor=con.cursor()
            sql=\"SELECT n.id,n.title,t.type,u.username \" \\
                \"FROM t_news n JOIN t_type t ON n.type_id=t.id \" \\
                \"JOIN t_user u ON n.editor_id=u.id \" \\
                \"WHERE n.state=%s \" \\
                \"ORDER BY n.create_time DESC \" \\
                \"LIMIT %s,%s\"
            cursor.execute(sql,(\"待审批\",(page-1)*10,10))
            result=cursor.fetchall()
            return result
        except Exception as e:
            print(e)
        finally:
            if \"con\" in dir():
                con.close()

    # 查询待审批新闻的总页数
    def search_unreview_count_page(self):
        try:
            con=pool.get_connection()
            cursor=con.cursor()
            sql=\"SELECT CEIL(COUNT(*)/10) FROM t_news WHERE state=%s\"
            cursor.execute(sql,[\"待审批\"])
            count_page=cursor.fetchone()[0]
            return count_page
        except Exception as e:
            print(e)
        finally:
            if \"con\" in dir():
                con.close()
    #审批新闻
    def update_unreview_news(self,id):
        try:
            con = pool.get_connection()
            con.start_transaction()
            cursor=con.cursor()
            sql=\"UPDATE t_news SET state=%s WHERE id=%s\"
            cursor.execute(sql,(\"已审批\",id))
            con.commit()
        except Exception as e:
            if \"con\" in dir():
                con.rollback()
            print(e)
        finally:
            if \"con\" in dir():
                con.close()




    #查询新闻列表
    def search_list(self,page):
        try:
            con=pool.get_connection()
            cursor=con.cursor()
            sql=\"SELECT n.id,n.title,t.type,u.username \" \\
                \"FROM t_news n JOIN t_type t ON n.type_id=t.id \" \\
                \"JOIN t_user u ON n.editor_id=u.id \" \\
                \"ORDER BY n.create_time DESC \" \\
                \"LIMIT %s,%s\"
            cursor.execute(sql,((page-1)*10,10))
            result=cursor.fetchall()
            return result
        except Exception as e:
            print(e)
        finally:
            if \"con\" in dir():
                con.close()

    #查询新闻总页数
    def search_count_page(self):
        try:
            con=pool.get_connection()
            cursor=con.cursor()
            sql=\"SELECT CEIL(COUNT(*)/10) FROM t_news\"
            cursor.execute(sql)
            count_page=cursor.fetchone()[0]
            return count_page
        except Exception as e:
            print(e)
        finally:
            if \"con\" in dir():
                con.close()

    #删除新闻
    def delete_by_id(self,id):
        try:
            con = pool.get_connection()
            con.start_transaction()
            cursor=con.cursor()
            sql=\"DELETE FROM t_news WHERE id=%s\"
            cursor.execute(sql,[id])
            con.commit()
        except Exception as e:
            if \"con\" in dir():
                con.rollback()
            print(e)
        finally:
            if \"con\" in dir():
                con.close()
from db.news_dao import NewsDao

class NewsService:
    __news_dao=NewsDao()

    # 查询待审批新闻列表
    def search_unreview_list(self,page):
        result=self.__news_dao.search_unreview_list(page)
        return result

    # 查询待审批新闻的总页数
    def search_unreview_count_page(self):
        count_page=self.__news_dao.search_unreview_count_page()
        return count_page

    # 审批新闻
    def update_unreview_news(self, id):
        self.__news_dao.update_unreview_news(id)

    #查询新闻列表
    def search_list(self, page):
        result=self.__news_dao.search_list(page)
        return result

    # 查询新闻总页数
    def search_count_page(self):
        count_page=self.__news_dao.search_count_page()
        return count_page

    # 删除新闻
    def delete_by_id(self, id):
        self.__news_dao.delete_by_id(id)
from colorama import Fore,Style,init
init()
from getpass import getpass
from service.user_service import UserService
from service.news_service import NewsService
from service.role_service import RoleService
import os
import sys
import time


__user_service=UserService()
__news_service=NewsService()
__role_service=RoleService()

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)
        #登陆成功
        if result==True:
            #查询角色
            role=__user_service.search_user_role(username)
            while True:
                os.system(\"cls\")
                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输入操作编号:\")
                            if opt==\"1\":
                                page=1
                                while True:
                                    os.system(\"cls\")
                                    count_page=__news_service.search_unreview_count_page()
                                    result=__news_service.search_unreview_list(page)
                                    for index in range(len(result)):
                                        one=result[index]
                                        print(Fore.LIGHTBLUE_EX, \"\\n\\t%d\\t%s\\t%s\\t%s\"%(index+1,one[1],one[2],one[3]))
                                    print(Fore.LIGHTBLUE_EX, \"\\n\\t-------------------\")
                                    print(Fore.LIGHTBLUE_EX,\"\\n\\t%d/%d\"%(page,count_page))
                                    print(Fore.LIGHTBLUE_EX, \"\\n\\t-------------------\")
                                    print(Fore.LIGHTRED_EX, \"\\n\\tback.返回上一层\")
                                    print(Fore.LIGHTRED_EX, \"\\n\\tprev.上一页\")
                                    print(Fore.LIGHTRED_EX, \"\\n\\tnext.下一页\")
                                    print(Style.RESET_ALL)
                                    opt = input(\"\\n\\t输入操作编号:\")
                                    if opt==\"back\":
                                        break
                                    elif opt==\"prev\" and page>1:
                                        page-=1
                                    elif opt==\"next\" and page<count_page:
                                        page+=1
                                    elif int(opt)>=1 and int(opt)<=10:
                                        news_id=result[int(opt)-1][0]
                                        __news_service.update_unreview_news(news_id)
                            elif opt==\"2\":
                                page=1
                                while True:
                                    os.system(\"cls\")
                                    count_page=__news_service.search_count_page()
                                    result=__news_service.search_list(page)
                                    for index in range(len(result)):
                                        one=result[index]
                                        print(Fore.LIGHTBLUE_EX, \"\\n\\t%d\\t%s\\t%s\\t%s\"%(index+1,one[1],one[2],one[3]))
                                    print(Fore.LIGHTBLUE_EX, \"\\n\\t-------------------\")
                                    print(Fore.LIGHTBLUE_EX,\"\\n\\t%d/%d\"%(page,count_page))
                                    print(Fore.LIGHTBLUE_EX, \"\\n\\t-------------------\")
                                    print(Fore.LIGHTRED_EX, \"\\n\\tback.返回上一层\")
                                    print(Fore.LIGHTRED_EX, \"\\n\\tprev.上一页\")
                                    print(Fore.LIGHTRED_EX, \"\\n\\tnext.下一页\")
                                    print(Style.RESET_ALL)
                                    opt = input(\"\\n\\t输入操作编号:\")
                                    if opt==\"back\":
                                        break
                                    elif opt==\"prev\" and page>1:
                                        page-=1
                                    elif opt==\"next\" and page<count_page:
                                        page+=1
                                    elif int(opt)>=1 and int(opt)<=10:
                                        news_id=result[int(opt)-1][0]
                                        __news_service.delete_by_id(news_id)
                            elif opt==\"back\":
                                break
                    elif opt==\"2\":
                        while True:
                            os.system(\"cls\")
                            print(Fore.LIGHTGREEN_EX, \"\\n\\t1.添加用户\")
                            print(Fore.LIGHTGREEN_EX, \"\\n\\t2.修改用户\")
                            print(Fore.LIGHTGREEN_EX, \"\\n\\t3.删除用户\")
                            print(Fore.LIGHTRED_EX, \"\\n\\tback.返回上一层\")
                            print(Style.RESET_ALL)
                            opt = input(\"\\n\\t输入操作编号:\")
                            if opt==\"back\":
                                break
                            elif opt==\"1\":
                                os.system(\"cls\")
                                username=input(\"\\n\\t用户名:\")
                                password = getpass(\"\\n\\t密码:\")
                                repassword=getpass(\"\\n\\t重复密码:\")
                                if password!=repassword:
                                    print(\"\\n\\t两次密码不一致(3秒自动返回)\")
                                    time.sleep(3)
                                    continue
                                email=input(\"\\n\\t邮箱:\")
                                result=__role_service.search_list()
                                for index in range(len(result)):
                                    one=result[index]
                                    print(Fore.LIGHTBLUE_EX,\"\\n\\t%d.%s\"%(index+1,one[1]))
                                print(Style.RESET_ALL)
                                opt=input(\"\\n\\t角色编号:\")
                                role_id=result[int(opt)-1][0]
                                __user_service.insert(username,password,email,role_id)
                                print(\"\\n\\t保存成功(3秒自动返回)\")
                                time.sleep(3)
                            elif opt==\"2\":
                                page = 1
                                while True:
                                    os.system(\"cls\")
                                    count_page = __user_service.search_count_page()
                                    result = __user_service.search_list(page)
                                    for index in range(len(result)):
                                        one = result[index]
                                        print(Fore.LIGHTBLUE_EX,
                                              \"\\n\\t%d\\t%s\\t%s\" % (index + 1, one[1], one[2]))
                                    print(Fore.LIGHTBLUE_EX, \"\\n\\t-------------------\")
                                    print(Fore.LIGHTBLUE_EX, \"\\n\\t%d/%d\" % (page, count_page))
                                    print(Fore.LIGHTBLUE_EX, \"\\n\\t-------------------\")
                                    print(Fore.LIGHTRED_EX, \"\\n\\tback.返回上一层\")
                                    print(Fore.LIGHTRED_EX, \"\\n\\tprev.上一页\")
                                    print(Fore.LIGHTRED_EX, \"\\n\\tnext.下一页\")
                                    print(Style.RESET_ALL)
                                    opt = input(\"\\n\\t输入操作编号:\")
                                    if opt == \"back\":
                                        break
                                    elif opt == \"prev\" and page > 1:
                                        page -= 1
                                    elif opt == \"next\" and page < count_page:
                                        page += 1
                                    elif int(opt) >= 1 and int(opt) <= 10:
                                        os.system(\"cls\")
                                        user_id=result[int(opt)-1][0]
                                        username = input(\"\\n\\t新用户名:\")
                                        password = getpass(\"\\n\\t新密码:\")
                                        repassword = getpass(\"\\n\\t再次输入密码:\")
                                        if password!=repassword:
                                            print(Fore.LIGHTRED_EX,\"\\n\\t两次密码不一致(3秒自动返回)\")
                                            print(Style.RESET_ALL)
                                            time.sleep(3)
                                            break
                                        email = input(\"\\n\\t新邮箱:\")
                                        result = __role_service.search_list()
                                        for index in range(len(result)):
                                            one = result[index]
                                            print(Fore.LIGHTBLUE_EX, \"\\n\\t%d.%s\" % (index + 1, one[1]))
                                        print(Style.RESET_ALL)
                                        opt = input(\"\\n\\t角色编号:\")
                                        role_id = result[int(opt) - 1][0]
                                        opt=input(\"\\n\\t是否保存(Y/N)\")
                                        if opt==\"Y\" or opt==\"y\":
                                            __user_service.update(user_id,username,password,email,role_id)
                                            print(\"\\n\\t保存成功(3秒自动返回)\")
                                            time.sleep(3)
                            elif opt==\"3\":
                                page = 1
                                while True:
                                    os.system(\"cls\")
                                    count_page = __user_service.search_count_page()
                                    result = __user_service.search_list(page)
                                    for index in range(len(result)):
                                        one = result[index]
                                        print(Fore.LIGHTBLUE_EX,
                                              \"\\n\\t%d\\t%s\\t%s\" % (index + 1, one[1], one[2]))
                                    print(Fore.LIGHTBLUE_EX, \"\\n\\t-------------------\")
                                    print(Fore.LIGHTBLUE_EX, \"\\n\\t%d/%d\" % (page, count_page))
                                    print(Fore.LIGHTBLUE_EX, \"\\n\\t-------------------\")
                                    print(Fore.LIGHTRED_EX, \"\\n\\tback.返回上一层\")
                                    print(Fore.LIGHTRED_EX, \"\\n\\tprev.上一页\")
                                    print(Fore.LIGHTRED_EX, \"\\n\\tnext.下一页\")
                                    print(Style.RESET_ALL)
                                    opt = input(\"\\n\\t输入操作编号:\")
                                    if opt == \"back\":
                                        break
                                    elif opt == \"prev\" and page > 1:
                                        page -= 1
                                    elif opt == \"next\" and page < count_page:
                                        page += 1
                                    elif int(opt) >= 1 and int(opt) <= 10:
                                        os.system(\"cls\")
                                        user_id=result[int(opt)-1][0]
                                        __user_service.delete_by_id(user_id)
                                        print(\"\\n\\t删除成功(3秒自动返回)\")
                                        time.sleep(3)

                    if opt==\'back\':
                        break;
                    elif opt==\'exit\':
                        sys.exit(0)

        else:
            print(\"\\n\\t登录失败(3秒自动返回)\")
            time.sleep(3)

    elif opt==\"2\":
        sys.exit(0)

以上就是python mysql项目实战的详细内容,更多关于python mysql项目实战的资料请关注自学编程网其它相关文章!

遇见资源网 Python python mysql项目实战及框架搭建过程 http://www.ox520.com/29060.html

常见问题

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务