成人性生交大片免费看视频r_亚洲综合极品香蕉久久网_在线视频免费观看一区_亚洲精品亚洲人成人网在线播放_国产精品毛片av_久久久久国产精品www_亚洲国产一区二区三区在线播_日韩一区二区三区四区区区_亚洲精品国产无套在线观_国产免费www

主頁 > 知識庫 > python mysql項目實戰(zhàn)及框架搭建過程

python mysql項目實戰(zhàn)及框架搭建過程

熱門標(biāo)簽:打電話機器人營銷 商家地圖標(biāo)注海報 海外網(wǎng)吧地圖標(biāo)注注冊 ai電銷機器人的優(yōu)勢 地圖標(biāo)注自己和別人標(biāo)注區(qū)別 聊城語音外呼系統(tǒng) 孝感營銷電話機器人效果怎么樣 南陽打電話機器人 騰訊地圖標(biāo)注沒法顯示

前言

python+mysql.connector,demo實戰(zhàn)

框架搭建

說實話,其實沒有使用到框架,只是用了, python+mysql.connector模塊
首先在開始虛擬環(huán)境:

(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

源代碼地址

代碼實現(xiàn) 創(chuàng)建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', '新聞標(biāo)題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');

創(chuàng)建DAO程序

#!/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()

創(chuàng)建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:
    # 創(chuàng)建私有對象
    __user_dao = UserDao()

    # 創(chuàng)建登錄函數(shù)
    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歡迎使用新聞管理系統(tǒng)")
    print(Fore.LIGHTBLUE_EX, "\n\t=========================")
    print(Fore.LIGHTGREEN_EX, "\n\t1.登錄系統(tǒng)")
    print(Fore.LIGHTGREEN_EX, "\n\t2.退出系統(tǒng)")
    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.退出系統(tǒng)")
                    print(Style.RESET_ALL)
                    opt = input("\n\t輸入操作編號:")
        else:
            print("\n\t登錄失敗")
    elif opt == "2":
        sys.exit(0)

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()

    # 查詢待審批新聞的總頁數(shù)
    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()

    #查詢新聞總頁數(shù)
    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

    # 查詢待審批新聞的總頁數(shù)
    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

    # 查詢新聞總頁數(shù)
    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歡迎使用新聞管理系統(tǒng)")
    print(Fore.LIGHTBLUE_EX, "\n\t==================")
    print(Fore.LIGHTGREEN_EX,"\n\t1.登陸系統(tǒng)")
    print(Fore.LIGHTGREEN_EX,"\n\t2.退出系統(tǒng)")
    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.退出系統(tǒng)")
                    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 pagecount_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 pagecount_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重復(fù)密碼:")
                                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項目實戰(zhàn)的詳細(xì)內(nèi)容,更多關(guān)于python mysql項目實戰(zhàn)的資料請關(guān)注腳本之家其它相關(guān)文章!

您可能感興趣的文章:
  • python+Django+pycharm+mysql 搭建首個web項目詳解
  • 詳解centos7+django+python3+mysql+阿里云部署項目全流程

標(biāo)簽:南寧 揚州 牡丹江 聊城 六盤水 楊凌 撫州 迪慶

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《python mysql項目實戰(zhàn)及框架搭建過程》,本文關(guān)鍵詞  python,mysql,項目,實戰(zhàn),及,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《python mysql項目實戰(zhàn)及框架搭建過程》相關(guān)的同類信息!
  • 本頁收集關(guān)于python mysql項目實戰(zhàn)及框架搭建過程的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    亚洲第一成肉网| 九九热hot精品视频在线播放| 亚洲一二三区在线| 国产中文字幕一区二区| free极度另类性欧美| 天堂成人在线视频| 亚洲h精品动漫在线观看| 亚洲毛片在线播放| 超碰在线91| 亚洲精品一区二区| 国产精品日产欧美久久久久| 欧美极品少妇xxxxⅹ免费视频| jizzjizz中国精品麻豆| 国产午夜精品一区理论片飘花| 丰满大乳奶做爰ⅹxx视频| 久久精品久久久久久久| 精品国产免费人成网站| 久久亚洲不卡| 快播亚洲色图| 成人免费在线视频网站| 国产一区二区三区在线看| 717影院理论午夜伦不卡久久| 欧美四级剧情无删版影片| 亚洲同志网站入口| 国内一区二区三区精品视频| 国产精品天干天干在观线| 91香蕉视频网| 亚洲a级黄色片| 国产一二三四区| 成人看片毛片免费播放器| av文字幕在线观看| 欧美性猛交xxxx乱大交3| 久久久久久久久国产精品| 中文在线免费一区三区高中清不卡| 亚洲深夜激情| 国产韩日影视精品| 九九热爱视频精品视频| 久久精品一区二区三区四区五区| 久久精品一级爱片| 可以看美女隐私的网站| 欧美顶级毛片在线播放| 中文岛国精品亚洲一区| 婷婷成人综合| 久久av一区二区三区| 特级毛片在线观看| 国产成人精品无码片区在线| 制服丝袜综合日韩欧美| 韩剧1988免费观看全集| 少妇太紧太爽又黄又硬又爽小说| 999福利在线视频| 在线观看亚洲黄色| 91欧美激情一区二区三区成人| 日本va欧美va精品| 成人免费高清观看| 日本一级理论片在线大全| 亚洲美女动态图120秒| 亚洲欧美国产制服动漫| 一个色综合网站| 国产精品变态另类虐交| 婷婷综合亚洲| 98色花堂精品视频在线观看| 人妻无码中文久久久久专区| 麻豆三级在线观看| 亚洲色图偷拍| 国产精品69毛片高清亚洲| 国产一区精品在线| 国产午夜在线| 国产日产欧美一区二区| 亚洲乱码精品| 国产高潮呻吟久久| 黄色片子在线观看| 成人在线免费视频观看| 国产69精品久久久久9| ●精品国产综合乱码久久久久| 色综合一本到久久亚洲91| 欧美激情xxxxx| 亚洲成人www| 日本熟妇成熟毛茸茸| 亚洲第一免费视频| 伊人在线视频| 黄色av网站免费观看| 国产精品无码天天爽视频| 麻豆av在线导航| 精品视频黄色| 69精品丰满人妻无码视频a片| 91在线小视频| 亚洲一区二区三区四区五区| 三级黄色片网站| 中文字幕av手机在线| 国产精品成人品| 成人网页在线免费观看| 黄色精品免费看| 亚洲三级电影在线观看| 欧美xxxx14xxxxx性爽| 国产精品乱战久久久| 国产尤物91| av亚洲在线| 国产成人1区| 五月天婷亚洲天综合网鲁鲁鲁| 日韩黄色影视| 超碰成人av| 91美女片黄在线观看游戏| 黄视频网站在线看| 亚洲国产中文字幕在线| 一级成人黄色片| 李宗瑞系列合集久久| 日韩精品影片| 欧美女优在线观看| 天堂中文av| 在线国产91| 亚洲天堂国产| 国内精品久久久久久久久电影网| 欧美日韩午夜在线| 99精品欧美一区二区三区综合在线| 国产激情综合五月久久| 亚洲成人资源网| 日韩和一区二区| 疯狂撞击丝袜人妻| 亚洲av无码一区二区三区性色| 国产乱人伦精品一区二区在线观看| 91久久国产视频| 国产美女被遭强高潮免费网站| 四虎永久在线精品免费一区二区| 国产一级黄色片免费| 色综合999| 精品嫩草影院久久| 欧美日中文字幕| 亚洲欧美日韩国产一区| 一区视频免费观看| 久久99精品久久久久久秒播放器| 艳妇乳肉豪妇荡乳av| 懂色av影视一区二区三区| 2020日本在线视频中文字幕| 又大又硬又爽免费视频| 欧美一区二区女人| 一区二区91美女张开腿让人桶| 亚洲影音先锋| 日韩av电影免费在线观看| 中文字幕一区日韩电影| 欧美国产日韩免费| 国产网站在线| 在线观看不卡av| 国外成人免费视频| 韩国一区二区在线播放| a视频免费看| 免费成人美女女| 91女主播在线观看| 疯狂欧洲av久久成人av电影| 高清欧美电影在线| 亚洲黄色网址在线观看| 日韩女优人人人人射在线视频| 亚洲精品97久久久babes| 7777精品久久久大香线蕉小说| 国产在线播放观看| 牛牛影视一区二区三区免费看| 一级性生活免费视频| 日韩视频免费观看高清完整版在线观看| 久操视频在线观看| www.中文字幕| 欧美日韩综合久久| 欧美极品videos大乳护士| 日本a级片视频| 黄色动漫在线观看| 欧美国产精品久久| 性感小视频在线看免费| av网站导航在线观看免费| 国产成人拍精品视频午夜网站| 国产男女免费视频| 国产手机精品在线| 精品国产123| 亚洲天堂视频在线观看| 91视频论坛| 人妻 日韩精品 中文字幕| 中文字幕中文字幕| 亚洲一区二区三区四区精品| 综合网日日天干夜夜久久| 可以免费在线看黄的网站| 免费电影视频在线看| 免费又黄又爽又猛大片午夜| 亚洲精品动漫100p| 国产吃瓜黑料一区二区| 视频一区二区中文字幕| 瑟瑟网站在线观看| 一级黄色在线视频| 无码av天堂一区二区三区| 97se视频在线观看| 欧美影院久久久| 大香煮伊手机一区| 日韩久久免费电影| 成人影片在线播放| 一区二区三区日韩精品| 蜜臀aⅴ国产精品久久久国产老师| 国内自拍欧美激情| 天天摸夜夜添狠狠添婷婷| av网站免费看| 裸体av在线| 亚洲一区免费视频| 久久在线视频精品| 日韩激情在线视频| 亚洲国产一区二区三区在线观看| 无码人妻精品一区二区三区99不卡| 国产视频一区二区三区四区| 91精品少妇一区二区三区蜜桃臀| 91看片破解版| 久久久精品久久久| 日本在线中文电影| 欧美激情一区在线| 高跟丝袜一区二区三区| 亚洲国产精品专区久久| 97色伦图片97色伦在线电影| 干日本少妇视频| 99久久精品国产一区色| 国产精品自拍电影| 亚洲一卡久久| 日韩av色在线| 国精产品一区一区三区mba视频| 一区二区激情小说| 亚洲天堂网在线观看| 精品视频站长推荐| 成人av在线播放网站| 二区三区在线播放| 国产一区二区影视| 久久资源在线| 中文字幕亚洲国产| 第一中文字幕在线| 欧美性猛交99久久久久99按摩| 37p粉嫩大胆色噜噜噜| 亚洲一区第一页| 国产精品精品视频一区二区三区| 成人h动漫精品一区| 最近中文字幕2019免费| 老司机午夜免费精品视频| 中文字幕亚洲一区二区av在线| 一区不卡视频| 日本xxxxwwww| 国产黄色一区| 亚洲国产一区二区三区在线播放| 欧美日韩亚洲一区二区三区在线观看| 黄污视频在线看| 欧美做受xxxxxⅹ性视频| 电影在线观看一区| 亚洲成人久久一区| 久久爱com| 天天爽夜夜爽一区二区三区| 国产一区二区自拍视频| 一区二区三区日韩精品视频| 久久久久久久色| 国产精品福利网| 亚洲在线视频观看| 精品人妻一区二区三区香蕉| 国内成人精品视频| 精品xxxxxbbbb欧美中文| 五月激情丁香一区二区三区| 欧美性20hd另类| 国产中文字幕一区二区三区| 九色蝌蚪自拍| 久久av超碰| 四虎4hu永久免费入口| 亚洲三区在线观看无套内射| 久久国产成人午夜av影院| 欧美xxxxx视频| 国产一区二区三区视频免费观看| 欧美日韩在线视频一区| 欧美自拍偷拍一区二区| www.99热这里只有精品| 精品国产精品久久一区免费式| 视频在线99re| 三级网站在线免费观看| 久久丫精品国产亚洲av不卡| 国产一区二区在线观看免费播放| 在线中文字幕不卡| 91国内产香蕉| 岛国爱情动作片在线| 欧美一级大片免费看| 中文字幕超清在线免费观看| 牛牛视频精品一区二区不卡| 久久国产精品高清一区二区三区| 国内精品亚洲| 蜜桃日韩视频| 日韩一级大片在线观看| 国产一区二区不卡老阿姨| 爱爱视频免费在线观看| 午夜精品久久久久99蜜桃最新版| 国产日韩在线一区二区三区| 国产成人精品免费视频网站| 国产精品毛片一区视频播| 成人免费观看视频大全| 国产视频每日更新| 成人中文字幕电影| 日韩欧美三级电影| 日韩精品有码在线观看| 国产精品黄页网站在线播放免费| 欧美精品一区二区性色a+v| 欧美精品国产精品日韩精品| 国产人成在线观看| **精品中文字幕一区二区三区| 亚洲精品水蜜桃| 粉嫩av一区| 日韩精品一区二区三区色偷偷| 精品视频123区在线观看| eeuss影院www免费看| 成人网18免费软件大全| 欧美黄色一级网站| 日韩欧美第二区在线观看| 97在线观看免费高清视频| 欧美最大成人综合网| 91免费精品国自产拍在线不卡| 黄色免费网站视频| 韩国精品美女www爽爽爽视频| 一级久久久久久久| 丝袜美腿亚洲色图| 福利视频第一区| 午夜日本精品| 久久久噜久噜久久综合| 成年大片免费视频播放二级| 欧美三级在线播放| 久热久精久品这里在线观看| 欧美精品亚州精品| 97国产在线播放| 乱一区二区av| 精品国产电影一区二区| 欧美亚洲福利| 一区二区高清视频在线观看| 一本久道综合色婷婷五月| 欧洲精品视频在线观看| 成人看片网站| 欧美日韩午夜爽爽| 欧美日本视频一区|