在学习python与MySQL的交互的过程中,遇到过许多问题,磕磕盼盼的写下了一个简单的购物系统附代码如下:
mysql数据表的创建sql语句

# 创建顾客表
create table GUEST_INFO(id int unsigned primary key auto_increment not null,name varchar(20) not null,address varchar(20),tel int(12) not null,password varchar(20) not null );# 修改表名
alter table GUEST_INFO rename to CUSTOMER_INFO;# 创建订单表
create table ORDER_INFO(id int unsigned primary key auto_increment not null,order_time datetime default current_timestamp,customer_id int unsigned not null); # 设置order_date_time默认值时间自动获取# 创建订单详情表
create table ORDER_DETAIL(id int unsigned primary key auto_increment not null,order_id int unsigned not null,good_id int unsigned not null,quantity int(5) unsigned default 1);# 创建商品表
create table goods(id int unsigned primary key auto_increment not null,name varchar(158) not null,cate_name varchar(48) not null,brand_name varchar(40) not null,price decimal(10,3) not null default 0,is_show bit not null default 1,is_saleoff bit not null default 0);# 往goods表里插入数据
insert into GOODS values(0,'r510vc 15.6英寸笔记本','笔记本','华硕','3399',default, default);
insert into GOODS values(0,'y400n 14.0英寸笔记本电脑','笔记本','联想','4999',default,default);
insert into GOODS values(0,'9150th 15.6英寸游戏本','游戏本','雷神','8499',default,default);
insert into GOODS values(0,'x550cc 15.6英寸笔记本','笔记本','华硕','2799',default,default);
insert into GOODS values(0,'x240 超级本','超级本','联想','4880',default,default);
insert into GOODS values(0,'u330p 13.3英寸超级本','超级本','联想','4299',default,default);
insert into GOODS values(0,'svp13226scb 触控超级本','超级本','索尼','7999',default,default);
insert into GOODS values(0,'ipad mini 7.9英寸平板电脑','平板电脑','苹果','1998',default,default);
insert into GOODS values(0,'ipad air 9.7英寸平板电脑','平板电脑','苹果','3388',default,default);
insert into GOODS values(0,'ipad mini 配备 retina 显示屏','平板电脑','苹果','2788',default,default);
insert into GOODS values(0,'ideacentre c340 20英寸一体电脑','台式机','联想','3499',default,default);
insert into GOODS values(0,'vostro 3800-r1206 台式电脑','台式机','戴尔','2899',default,default);

购物类

"""
功能要求:
1、未注册的顾客实现注册
2、注册了的顾客实现登陆
3、登陆完成的顾客进入功能表进行下单
"""
from pymysql import connectclass GUEST_OP(object):"""顾客购物类"""def __init__(self):"""连接数据库"""self.conn = connect(host='localhost',port=3306,user='root',password='52jisoo',database='GUEST_OP')self.cursor = self.conn.cursor()def __del__(self):"""关闭数据库"""self.cursor.close()self.conn.close()def execute_sql(self,sql):"""执行Sql语句"""self.cursor.execute(sql)for temp in self.cursor.fetchall():print(temp)def login_or_register(self):"""登陆注册界面"""while True:print("--------注册登陆界面--------")print("1.登陆")print("2.注册")print("3.退出")num = input('请输入你选择的功能序号:')if num == "1":self.login()if num == "2":self.register()if num == "3":breakdef function_info(self,name,customer_id):"""功能界面"""while True:print("--------功能界面--------")print("1:查询所有商品信息")print("2:查询商品分类信息")print("3:查询商品品牌分类信息")print("4:查询个人信息")print("5:下订单")print("6:订单详情信息")print("7:退出")num = input("请输入你想要的功能序号:")if num == "1":self.select()elif num == "2":self.goods_order_by()elif num == "3":self.goods_brands_order_by()elif num == "4":self.persion_info(name)elif num == "5":self.order(customer_id)elif num == "6":self.select_order_details(customer_id)elif num == "7":breakdef register(self):"""实现新用户注册"""name = input('请输入你的名字:')address = input('请输入你的联系地址:')tel = int(input('请输入你的电话号码:'))password = input('请设置你的的登陆密码:')sql='insert into CUSTOMER_INFO values(0,%s,%s,%s,%s);'self.cursor.execute(sql,[name,address,tel,password])self.conn.commit()print("注册成功")def login(self):"""顾客登陆"""try:name = input('请输入你的名字:')password = int(input('请输入你的密码:'))sql = 'select id from CUSTOMER_INFO where name= %s and password= %s'self.cursor.execute(sql,[name,password])customer_id = self.cursor.fetchall()if customer_id:self.function_info(name,customer_id)else:print('名字错误或密码错误')except:print('你输入的信息有误')def select(self):"""查询所有商品信息"""sql = 'select * from GOODS;'self.execute_sql(sql)def goods_order_by(self):"""查询所有商品分类信息"""sql = 'select cate_name from GOODS order by cate_name;'self.execute_sql(sql)def goods_brands_order_by(self):"""查询商品品牌分类信息"""sql = 'select brand_name from GOODS order by brand_name;'self.execute_sql(sql)def persion_info(self,name):"""查询个人信息"""sql = 'select * from CUSTOMER_INFO where name = %s'self.cursor.execute(sql,[name])print(self.cursor.fetchall())def order(self,customer_id):"""下订单向订单表中添加数据"""goods_id = int(input('请输入你要买的商品的id:'))goods_quantity = int(input('请输入你要购买的数量:'))sql1 = 'insert into ORDER_INFO values(0,default,%s);'self.cursor.execute(sql1,[customer_id])self.conn.commit()self.order_details(goods_id,goods_quantity)print('------>已成功下订单<--------')def order_details(self,goods_id,goods_quantity):"""向订单详情表中添加数据"""sql2 = 'select id from ORDER_INFO order by id desc;' #降序查询获取最新订单的idsql3 = 'insert into ORDER_DETAIL values(0,%s,%s,%s);'self.cursor.execute(sql2)order_id = self.cursor.fetchone()self.cursor.execute(sql3,[order_id,goods_id,goods_quantity])self.conn.commit()def select_order_details(self,customer_id):"""查询订单详情"""sql = '''select od.id, order_id,good_id,quantity, order_time, customer_id from ORDER_DETAIL as od inner join ORDER_INFO as oi onod.order_id = oi.id and oi.customer_id = %s'''self.cursor.execute(sql,[customer_id])for temp in self.cursor.fetchall():print(temp)def main():customer = GUEST_OP()customer.login_or_register()if __name__ == '__main__':main()

最终实现的效果如下:
1.注册

2.登录进入功能页面

3.下订单并查看订单信息


以上就是简要功能概述,所有的操作都是在linux系统下完成的,在进一步学习后我将会以更好地界面来呈现数据。

python与mysql交互下的简单购物系统相关推荐

  1. 【python MySQL 笔记】python和MySQL交互、操作

    [python MySQL 笔记]python和MySQL交互.操作 目录 1. 数据准备 2.  SQL演练 2.1 SQL语句强化练习 2.2. 将一个表拆为多个表 3. python操作MySQ ...

  2. python与mysql交互详解

    python与MySQL交互 一.数据准备 二.pymysql模块的使用 三.实例的介绍 1. 面向对象的方法 完成查询 2. 添加增加功能 3.查询-->包含sql注入 4.解决sql注入 四 ...

  3. python淘宝_python实现淘宝购物系统

    本文实例为大家分享了python淘宝购物系统的具体代码,供大家参考,具体内容如下 代码如下: #刚创建账户所拥有的钱 money = 0 #定义商品列表 goods_list = [ {'name': ...

  4. python查询mysql数据库_用python操作mysql数据库(之简单查询操作)

    1.mysql安装 此处省略一万字....... 2.pip安装MySQLdb模块 sudo pip install mysql-python 3.简单代码#!/usr/bin/env python ...

  5. window mysql proxy_window下mysql-proxy简单使用

    mysql-proxy是mysql官方提供的mysql中间件服务,上游可接入若干个mysql-client,后端可连接若干个mysql-server.它使用mysql协议,任何使用mysql-clie ...

  6. python与MySQL交互

    from pymysql import connect class MysqlHelp: def init(self,database,host='localhost',user='root',pas ...

  7. 〖Python 数据库开发实战 - Python与MySQL交互篇⑯〗- 项目实战 - 实现用户管理 - 新增用户功能

    订阅 Python全栈白宝书-零基础入门篇 可报销!白嫖入口-请点击我.推荐他人订阅,可获取扣除平台费用后的35%收益,文末名片加V! 说明:该文属于 Python全栈白宝书专栏,免费阶段订阅数量43 ...

  8. 〖Python 数据库开发实战 - Python与MySQL交互篇⑭〗- 项目实战 - 实现新闻管理 - 审批新闻 功能

    订阅 Python全栈白宝书-零基础入门篇 可报销!白嫖入口-请点击我.推荐他人订阅,可获取扣除平台费用后的35%收益,文末名片加V! 说明:该文属于 Python全栈白宝书专栏,免费阶段订阅数量43 ...

  9. 〖Python 数据库开发实战 - Python与MySQL交互篇⑫〗- 项目实战- 实现新闻管理模块

    订阅 Python全栈白宝书-零基础入门篇 可报销!白嫖入口-请点击我.推荐他人订阅,可获取扣除平台费用后的35%收益,文末名片加V! 说明:该文属于 Python全栈白宝书专栏,免费阶段订阅数量43 ...

最新文章

  1. Python手动编程实现斐波那契数列
  2. WGAN的提出背景以及解决方案
  3. 王哲:Cocos2d-x 3.0引擎带来了什么?
  4. jira 插件介绍地址
  5. 共筑全场景智慧生态,华为HMS全球应用创新大赛火热开启
  6. 后端代码之服务端 - 项目工程化创建目录启动服务 -讲解篇
  7. mie散射理论方程_电磁散射工程应用基础
  8. VINS简化版本 梳理
  9. STL常用函数总结-queue+priority_queue
  10. ORACLE 36进制和10进制,互相转换函数
  11. c++MFC 截取字符串
  12. nodejs+vue+elementui宠物医院管理系统php-java-python
  13. 企业资源规划 ERP
  14. ★用辩证数学解答“缸中之脑”
  15. UDP都是全双工通信的吗
  16. 团员大会如何写组织学习计算机知识,团支部召开接收新团员的支部大会的会议记录怎么写?...
  17. HTML3-视频图像的插入
  18. 专家教你如何使用google
  19. ubuntu 源更新
  20. Creator3D:shader13_水面涟漪

热门文章

  1. 巧妙运用递归实现字符串的倒序输出
  2. 漫谈socket-io的基本原理
  3. target.ID 和 source.ID 的属性冲突: DataType 属性不匹配
  4. linux+指令+tree,Linux命令——tree
  5. Sql Server datetime 常用日期格式转换
  6. 若依vue3 前端微应用改造
  7. matlab conv 多项式,【 MATLAB 】conv 函数介绍(卷积和多项式乘法)
  8. 由TCP三次握手原理来分析NAT回流故障
  9. mysql flicker_分布式全局序列ID方案之Flicker优化方案
  10. 积分生活-积分体系的成熟