用python实现简单版的京东商城

一、数据库准备

1. 商品表

create table goods(id int unsigned primary key auto_increment not null,name varchar(150) not null,cate_id int unsigned not null,brand_id int unsigned not null,price decimal(10,3) not null default 0,is_show bit not null default 1,is_saleoff bit not null default 0
);

2. 商品分类表

create table if not exists goods_cates(id int unsigned primary key auto_increment,name varchar(40) not null
);

3. 商品品牌分类表

create table goods_brands (id int unsigned primary key auto_increment,name varchar(40) not null
);

二、相应的库准备

应为我的数据库放在云服务器上,因此在准备库的时候需要多加上一个sshtunnel库。(具体原因在上一章)

  • pymysql安装命令:pip install pymysql
  • sshtunnel安装命令:pip install sshtunnel

三、基本骨架

整个代码我们可以利用一个JD类来实现,利用他的__init__方法来构建ssh的连接和mysql的连接,利用__del__方法来释放关闭连接。然后写一个run方法,在此基础上将增删改查四个步骤写入,在将这四个步骤分别细分成每个表即可。话不多说,上代码:

# -*- coding: utf-8 -*-
# @Author  : summer
from sshtunnel import SSHTunnelForwarder
import pymysqlclass JD:def __init__(self):# 初始化,建立ssh连接,然后进行pysql连接self.ssh = SSHTunnelForwarder(ssh_address_or_host=(IP, 22),  # 云服务器地址IP和端口portssh_username=admin,  # 云服务器登录账号adminssh_password=pwd,  # 云服务器登录密码password# 数据库服务地址ip,一般为localhost和端口port,一般为330remote_bind_address=('localhost', 3306))self.ssh.start()self.coon = pymysql.connect(host='127.0.0.1',  # 此处必须是是127.0.0.1port=self.ssh.local_bind_port, user=admin,  # mysql的登录账号adminpassword=pwd,  # mysql的登录密码pwddb=db,  # mysql中要访问的数据表charset='utf8')  # 表的字符集# 创建游标self.cur = self.coon.cursor()def __del__(self):# 关闭对象self.cur.close()self.coon.close()self.ssh.close()def execute_sql(self, sql):# 执行sql语句self.cur.execute(sql)one_data = self.cur.fetchone()while one_data:print(one_data)one_data = self.cur.fetchone()@staticmethoddef print_find_menu():# 打印查找的列表print("-----京东商城-查询操作-----")print("1:所有的商品")print("2:所有的商品分类")print("3:所有的商品品牌分类")print("4:按值查询商品")print("0:退出")return input("请输入功能对应的序号:")def do_find(self):# 执行查找总操作while True:num = self.print_find_menu()if num == "1":passelif num == "2":passelif num == "3":passelif num == "4":passelif num == "0":print("")breakelse:print("您输入的序号有误,请重新输入\n")@staticmethoddef print_update_menu():# 打印修改的列表print("-----京东商城-修改操作-----")print("1:修改商品")print("2:修改商品分类")print("3:修改商品品牌分类")print("0:退出")return input("请输入功能对应的序号:")def do_update(self):# 执行修改的总操作while True:num = self.print_update_menu()if num == "1":passelif num == "2":passelif num == "3":passelif num == "0":self.coon.commit()print("")breakelse:print("您输入的序号有误,请重新输入\n")@staticmethoddef print_del_menu():# 打印删除的列表print("-----京东商城-删除操作-----")print("1:删除商品")print("2:删除商品分类")print("3:删除商品品牌分类")print("0:退出")return input("请输入功能对应的序号:")def do_del(self):# 执行删除的总操作while True:num = self.print_del_menu()if num == "1":# 删除商品passelif num == "2":passelif num == "3":passelif num == "0":self.coon.commit()print("")breakelse:print("您输入的序号有误,请重新输入\n")@staticmethoddef print_add_menu():# 打印添加的列表print("-----京东商城-增加操作-----")print("1:增加商品")print("2:增加商品分类")print("3:增加商品品牌分类")print("0:退出")return input("请输入功能对应的序号:")def do_add(self):# 打印添加的列表while True:num = self.print_add_menu()if num == "1":passelif num == "2":passelif num == "3":passelif num == "0":passprint("")breakelse:print("您输入的序号有误,请重新输入\n")@staticmethoddef pring_menu():# 打印总的列表print("-----京东商城-----")print("1:查询操作")print("2:修改操作")print("3:删除操作")print("4:添加操作")print("0:退出")return input("请输入功能对应的序号:")def run(self):while True:num = self.pring_menu()if num == "1":self.do_find()elif num == "2":self.do_update()elif num == "3":self.do_del()elif num == "4":self.do_add()elif num == "0":self.coon.commit() # 这里最好也添加一个print("")breakelse:print("您输入的序号有误,请重新输入\n")def main():jd = JD()jd.run()del jdif __name__ == '__main__':main()

四、“添油加醋”

有了这个骨架,我们就可以添加相关的操作即可,这里需要注意几点:

  • 查找操作不需要提交,因此可以单独写一个执行代码
  • 增删改操作在整个退出以后,需要执行一次commit操作
  • 再写增删改的sql语句时,需要注意sql注入,因此可以使用列表等元素进行相应的防护

五、总代码

代码传送门

python实现京东商城相关推荐

  1. python爬虫完整实例-python爬虫实战之爬取京东商城实例教程

    前言 本文主要介绍的是利用python爬取京东商城的方法,文中介绍的非常详细,下面话不多说了,来看看详细的介绍吧. 主要工具 scrapy BeautifulSoup requests 分析步骤 1. ...

  2. 爬虫python的爬取步骤-python爬虫实战之爬取京东商城实例教程

    前言 本文主要介绍的是利用python爬取京东商城的方法,文中介绍的非常详细,下面话不多说了,来看看详细的介绍吧. 主要工具 scrapy BeautifulSoup requests 分析步骤 1. ...

  3. python爬虫爬图片教程_python爬虫实战之爬取京东商城实例教程

    前言 本文主要介绍的是利用python爬取京东商城的方法,文中介绍的非常详细,下面话不多说了,来看看详细的介绍吧. 主要工具 scrapy BeautifulSoup requests 分析步骤 1. ...

  4. python 爬网站 实例_python爬虫实战:之爬取京东商城实例教程!(含源代码)

    前言: 本文主要介绍的是利用python爬取京东商城的方法,文中介绍的非常详细,下面话不多说了,来看看详细的介绍吧. 主要工具 scrapy BeautifulSoup requests 分析步骤 1 ...

  5. python模拟登录网站_Python爬虫实战之(四)| 模拟登录京东商城

    作者:xiaoyu 微信公众号:Python数据科学 知乎:Python数据分析师 前两篇和大家分享了爬虫中http的一些概念和使用方法,基础篇我们主要介绍了http的请求头,高级篇我们主要介绍了co ...

  6. Python抓取京东商城的所有笔记本电脑的参数

    最近洪爷要写数据挖掘的论文需要些数据,于是俺又有机会做苦力了.昨天刚刚回到学校,晚上就帮洪爷写了个爬虫来爬数据京东商城的笔记本的参数. 为了快速完成,基本原理就是人工找到笔记本的页面. 然后他有22页 ...

  7. python爬京东联盟_python爬虫框架scrapy实战之爬取京东商城进阶篇

    前言 之前的一篇文章已经讲过怎样获取链接,怎样获得参数了,详情请看python爬取京东商城普通篇,本文将详细介绍利用python爬虫框架scrapy如何爬取京东商城,下面话不多说了,来看看详细的介绍吧 ...

  8. python爬虫爬取教程_python爬虫实战之爬取京东商城实例教程

    前言 本文主要介绍的是利用python爬取京东商城的方法,文中介绍的非常详细,下面话不多说了,来看看详细的介绍吧. 主要工具 scrapy BeautifulSoup requests 分析步骤 1. ...

  9. 利用python爬虫爬取京东商城商品图片

    笔者曾经用python第三方库requests来爬取京东商城的商品页内容,经过解析之后发现只爬到了商品页一半的图片.(这篇文章我们以爬取智能手机图片为例) 当鼠标没有向下滑时,此时查看源代码的话,就会 ...

最新文章

  1. 网络营销er每天必做四件事
  2. Array.Copy 方法 总结
  3. 一场面试,用20秒介绍自己顺便教训了领导
  4. Go-err is shadowed during return
  5. Linux下Nginx+PHP+MySQL配置(图)
  6. linux crontab 每隔10秒执行一次
  7. IQueryable接口与IEnumberable接口的区别
  8. pandas AttributeError: ‘Styler‘ object has no attribute ‘style‘解决方法
  9. memcached服务安装与卸载
  10. CANoe 13 demo 下载和激活-转载
  11. ddr3配置 dsp6678_DSP6678DDR配制方法
  12. thinkpkp typecho maccms 全站加密不改动源码方法,多数php程序通用
  13. matlab 判断 正态分布,用MATLAB判断一组数据是否符合正态分布
  14. GitLab配置ssh key:gitlab add an ssh key
  15. 使用plist文件进行ipa的安装
  16. 【图解数据结构】队列全面总结
  17. jQuery插件的使用
  18. 大量数据导出Excel方案
  19. 微信小程序预览无法播放视频
  20. 快手、抖音、微信视频号三国争霸,究竟鹿死谁家?

热门文章

  1. 安卓无法下载excel文件
  2. SecureCRT方向键不可用
  3. ai智能语音机器人的新风向
  4. 戴尔服务器提升性能,解析戴尔12G服务器的主要性能提升和改进
  5. CaffeNet简介
  6. Vue中利用moment.js(时间格式化插件)做一个倒计时组件
  7. 计算机一级考试操作题知识点,计算机一级考操作题知识点归纳.doc
  8. android studio moudel,Android Studio中的Module是指什么?
  9. 打怪物小游戏,无聊打发时间
  10. 有些段子,外行人根本看不懂,只有程序员看了会狂笑不止