自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(225)
  • 收藏
  • 关注

原创 分布式爬虫-部署

分布式爬虫-部署打开ubuntusudo su 转换成root用户,不转输入命令需要加sudo安装python3 :apt pip install python3-pip安装scrapyd : pip3 install scrapyd 报以下错误码,需要更新setuptools见下图 :pip3 install --upgrade setuptools再次执行: pip3 install scrapyd 成功进入安装目录:root@ellen-virtual-machine:/#

2021-09-06 18:15:56 441

原创 Python项目-Django-保存订单信息-事务使用

保存订单基本信息和订单商品信息后端接口定义class OrderCommitView(LoginRequiredJSONMixin, View): """订单提交""" def post(self, request): """保存订单信息和订单商品信息""" pass订单数据分为订单基本信息和订单商品信息,二者为一对多的关系。保存到订单的数据是从Redis购物车中的已勾选的商品信息。保存订单基本信息class OrderCommitView(L

2021-04-04 23:08:05 505 1

原创 Python项目-Django-创建订单数据库表

创建订单数据库表生成的订单数据要做持久化处理,而且需要在《我的订单》页面展示出来。订单数据库表分析订单号不再采用数据库自增主键,而是由后端生成。一个订单中可以有多个商品信息,订单基本信息和订单商品信息是一对多的关系。订单模型类迁移建表orders/ models.pyfrom django.db import modelsfrom utils.models import BaseModelfrom users.models import User, Addressfrom goods

2021-04-03 22:17:33 1115

原创 Python项目-Django-结算订单接口设计和定义

结算订单逻辑分析结算订单是从Redis购物车中查询出被勾选的商品信息进行结算并展示后端接口定义class OrderSettlementView(LoginRequiredMixin, View): """结算订单""" def get(self, request): """提供订单结算页面""" return render(request, 'place_order.html')结算订单后端逻辑实现class OrderSettlementVi

2021-04-03 21:20:31 397

原创 Python项目-合并购物车

二、购物车存储方案## 1、存储数据分析- 相对于用户登录和未登录状态下的区别是,是否有用户id 进行绑定,购物车内信息相同- 当商品详情页面添加到购物车时,此时商品信息只有一条 * 商品相关信息、数量、- 当在购物车列表页面时,此时商品信息可能多条,且存在某一条信息是否选择的情况 * 购物车每一条记录包含 : 商品相关信息、数量、是否勾选- 归纳总结后可得到:购物车每条记录应包含基本信息为: * 用户id: ser_id,未登录没用,可以用本机机器码代替,或保存到本地cookie中

2021-04-03 17:43:38 193 2

原创 Python项目-全选购物车

在购物车页面修改购物车使用局部刷新的效果。全选购物车接口设计和定义后端接口定义class CartsSelectAllView(View): """全选购物车""" def put(self, request): # 接收和校验参数 # 判断用户是否登录 user = request.user if user.is_authenticated: # 用户已登录,操作redis购物车

2021-04-03 17:34:37 321

原创 Python项目-删除购物车

在购物车页面删除购物车使用局部刷新的效果。删除购物车接口设计和定义后端接口定义class CartsView(View): """购物车管理""" def delete(self, request): """删除购物车""" # 接收和校验参数 # 判断用户是否登录 user = request.user if user.is_authenticated: # 用户已登录,删除r

2021-04-03 17:28:10 364

原创 Python项目-修改购物车

在购物车页面修改购物车使用局部刷新的效果。修改购物车接口设计和定义后端接口定义class CartsView(View): """购物车管理""" def put(self, request): """修改购物车""" # 接收和校验参数 # 判断用户是否登录 user = request.user if user.is_authenticated: # 用户已登录,修改redi

2021-04-03 17:23:45 164

原创 Python项目-展示购物车

展示购物车展示购物车接口设计和定义后端接口定义class CartsView(View): """购物车管理""" def get(self, request): """展示购物车""" user = request.user if user.is_authenticated: # 用户已登录,查询redis购物车 pass else: # 用户未

2021-04-03 17:17:37 209 1

原创 Python项目-添加购物车

在商品详情页添加购物车使用局部刷新的效果添加购物车接口设计和定义请求方式 : 选项 方案 请求方法 POST请求地址 /carts/请求参数: JSON参数名 类型 是否必传 sku_id int 是count int 是selected bool 否

2021-04-03 17:07:28 560

原创 Python项目-购物车存储方案

购物车存储方案用户登录与未登录状态下,都可以保存购物数据。用户对购物车数据的操作包括:增,删,改,查、全先等等每个用户的购物车数据都要作唯一 性的标识登录用户购物车存储方案存储数据说明如何描述一条购物车记录用户ellen,选择了两个iPhone8 添加到购物车中,添加了多少,状态为勾选一条完整的购物车记录包括:用户、商品、数量、勾选状态。存储数据:user_id 、sku_id 、count、selected存储位置购物车数据量小,结构简单,更新频繁,所以选择内存型数据库Redis进

2021-04-03 16:50:53 209

原创 Django项目-商品详情页

商品详情页分析和准备1.商品分类2.面包屑3.热销排行4.商品名字、价格、数量、规格(颜色,内存,) 总价(和数量有关系)5.商品详情 规格与包装 售后服务6. 商品评价(完成下单后)商品详情页组成结构分析1.商品频道分类• 已经提前封装在contents.utils.py文件中,直接调用方法即可。2.面包屑导航• 已经提前封装在goods.utils.py文件中,直接调用方法即可。3.热销排行• 该接口已经在商品列表页中实现完毕,前端直接调用接口即可。4.商品SKU信息(详情.

2021-03-28 23:29:16 962

原创 全文检索-Elasticsearch

全文检索和搜索引擎原理商品搜索需求• 当用户在搜索框输入商品关键字后,我们要为用户提供相关的商品搜索结果。商品搜索实现• 可以选择使用模糊查询like关键字实现。• 但是 like 关键字的效率极低。• 查询需要在多个字段中进行,使用 like 关键字也不方便。全文检索方案• 我们引入全文检索的方案来实现商品搜索。• 全文检索即在指定的任意字段中进行检索查询。• 全文检索方案需要配合搜索引擎来实现。搜索引擎原理• 搜索引擎进行全文检索时,会对数据库中的数据进行一遍预处理,单独建立起一

2021-03-26 16:14:02 191

原创 Django项目-商品列表页

商品列表页商品列表面分析:从页面观察需要做的功能有:1,页面中有商品分类,之前已做过,可封装调用2. 面包屑 也称导航条3. 热销排行- 由于是时时变化, 一般会存到redis中再进行查询4. 排序(默认、价格、人气)5. 根据分类查询展示具体的商品–如三级分类查询出手机6. 分页商品列表页组成结构分析1.商品频道分类• 已经提前封装在contents.utils.py文件中,直接调用即可。2.面包屑导航• 可以使用三级分类ID,查询出该类型商品的三级分类数据。3.排序和分页

2021-03-26 13:52:58 752 1

原创 Django文件存储类url()

Django文件存储类url()方法介绍结论:• 文件存储类url()方法的作用:返回name所代表的文件内容的URL。• 文件存储类url()方法的触发:content.image.url• 虽然表面上调用的是ImageField的url方法。但是内部会去调用文件存储类的url()方法。• 文件存储类url()方法的使用:• 我们可以通过自定义Django文件存储类达到重写url()方法的目的。• 自定义Django文件存储类必须提供url()方法。• 返回name所指的文件对应的绝对U

2021-03-23 21:34:07 348 3

原创 python电商项目-首页广告展示

首页广告展示实现首页轮播图广告 快讯广告 一楼(手机) 二楼(电脑数码) 三楼(家居家装)广告页面展示{ "index_lbt":[ { "id":1, "category": 1, "title": '美图', "url": 'http://www.baidu.com', "image": "group/M00/00/01/ADASDADA-CZXCSAa

2021-03-23 17:25:05 284 1

原创 电商项目-展示首页商品频道分类

展示首页商品频道分类现在要将页面显示成上图;数据展示的结构如下:(结构不是固定的,按项目需求而来)(一张三级联动的表 是通过parent_id来做的){ "1":{ "channels":[ {"id":1, "name":"手机", "url":"http://shouji.jd.com/"}, {"id":2, "name":"相机", "url":"http://www.baidu.cn/"} ],

2021-03-21 20:21:58 693 1

原创 录入商品数据和图片数据

录入商品数据和图片数据SQL脚本录入商品数据mysql -h127.0.0.1 -uroot -pmysql lgshop < 文件路径/goods_data.sqlFastDFS服务器录入图片数据1.删除 Storage 中旧的data目录sudo rm -rf data( -rf 强制删除)2.准备新的图片数据压缩包上传数据包data.tar.gz 后解压3.拷贝新的图片数据包压缩包到 Storage,并解压将上图中解压后的data数据拷贝到 /var/fdfs/stora

2021-03-20 22:03:56 329

原创 Docker和FastDFS上传和下载文件-实操

Docker和FastDFS上传和下载文件Docker安装运行FastDFS获取FastDFS镜像# 从仓库拉取镜像$ sudo docker image pull delron/fastdfs# 解压资料中本地镜像$ sudo docker load -i 文件路径/fastdfs_docker.tar开启tracker容器• 我们将 tracker 运行目录映射到宿主机的 /var/fdfs/tracker目录中。sudo docker run -dit --name tracker

2021-03-20 21:29:25 219

原创 Docker - 容器和镜像操作

容器化方案Docker思考• FastDFS的安装步骤非常的多,涉及的依赖包也很多,当新的机器需要安装FastDFS时,是否需要从头开始安装。• 在工作中,如何高效的保证开发人员写代码的开发环境与应用程序要部署的生产环境一致性。如果要部署一台新的机器,是否需要从头开始部署。结论• 上述思考的问题,都涉及到相同的工作是否需要重复做。• 避免相同的工作重复做是容器化技术应用之一。容器化方案• Docker• Docker的目标之一就是缩短代码从开发、测试到部署、上线运行的周期,让我们的应用程序

2021-03-20 14:48:51 98

原创 文件存储方案FastDFS

文件存储方案FastDFSFastDFS介绍• 用c语言编写的一款开源的轻量级分布式文件系统。• 功能包括:文件存储、文件访问(文件上传、文件下载)、文件同步等,解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在线服务,如相册网站、视频网站等等。• 为互联网量身定制,充分考虑了冗余备份、负载均衡、线性扩容等机制,并注重高可用、高性能等指标。• 可以帮助我们搭建一套高性能的文件服务器集群,并提供文件上传、下载等服务。• FastDFS架构包括Client、Tracker server和St

2021-03-18 17:47:41 471 3

原创 python项目-首页广告数据库表分析

首页广告数据库表分析定义首页广告模型类:contents.models.pyfrom django.db import modelsfrom utils.models import BaseModelclass ContentCategory(BaseModel): """广告内容类别""" name = models.CharField(max_length=50, verbose_name='名称') key = models.CharField(max_lengt

2021-03-18 17:25:38 380

原创 Python-修改密码功能

修改密码使用forms表单验证方式:forms.pyclass ChangePasswordForm(forms.Form): old_password = forms.CharField(max_length=20, min_length=8, required=True, error_messages={"max_length": "用户长度最长为20", "min_length": "用户名最少长度为8", "required": "密码必填"}) new_password =

2021-03-18 14:22:47 4163 4

原创 Scrapy 工作流程

Scrapy工作流程(重点)首先Spider(爬虫)将需要发送请求的url经过ScrapyEngins(引擎)交给调试器 Scheduler(调度器)Scheduler(调度器)排序 入列处理后,再经过ScrapyEngins(引擎)到DownloaderMiddleware(下载中间件)(user-agent cookie porxy)交给downloader(下载者)–>向internet发送请求Downloader向互联网发起请求,并接收响应(response) 将响应在经过Scr

2021-03-17 16:06:27 513

原创 支付宝对接

支付宝开放平台入口• https://open.alipay.com/platform/home.htm创建应用和沙箱环境创建应用沙箱环境支付宝提供给开发者的模拟支付的环境。跟真实环境是分开的。• 沙箱应用:https://open.alipay.com/platform/appDaily.htm?tab=info• 沙箱账号:https://openhome.alipay.com/platform/appDaily.htm?tab=account支付宝开发文档• 文档主页:https:/

2021-03-17 14:04:57 206

原创 Scrapy 爬取内容 并且翻页

需求:爬取每一个问政标题的内容 并且翻页解决方案:通过Scrapy来实现需求问政url:http://wz.sun0769.com/political/index/index思路:1.找到ul标签2.找到li标签3.找到li标签里面的href title4.翻页http://wz.sun0769.com/political/index/politicsNewest 第一页http://wz.sun0769.com/political/index/politicsNewest?i

2021-03-15 15:43:24 416

原创 Scrapy-爬取腾讯招聘

Scrapy . requests + selenium --> 90%的爬虫需求 . Scrapy --?10% --> 爬虫更快 更强 . 什么是Scrapy? 框架 . 正则bs4 lxml模块 模块 = 手 框架 = 身体 . Twisted 异步网络框架 加快下载速度 采用大量的闭包 学习scrapy网址: https://docs.scrapy.org/en/latest/intro/tutorial.html Scrapy工作流程(重点) 首先Sp

2021-03-12 14:52:11 329

原创 爬虫-多线程

多线程 效率 在线程中,访问一些全局变量, 加锁是一个经常的过程。如果你是想把一些数据存储到某队列中,那么python内置了一个线程安全模块叫作queue模块。Python中的queue模块中提供了同步线程安全的队列类, 包括FIFO(先进先出) 队列Queue , LIFO(后入先出) 队列LifoQueue 。这些队列都实现了锁原理(可以理解为原子操作, 既要么不做,要么都做完),能够在多线程中直接使用。可以使用队列来实现线程间的同步。 例:食堂打饭 先进先出 容器里放书

2021-03-09 14:26:32 150

原创 selenium实现12306购票

selenium实现12306购票 第一个问题我们这个案例的初衷是干什么? 第二个问题是这个案例和专业打保票的差别 第三个问题 登录是可以提前登录的。 但是登录又是必须的第一步 登录 面向对象来完成知识点复习 浏览器的闪退问题 如何产生的 如何解决的 显示等待第二步 车次以及余票查询 由个人详情界面跳转到车次界面 先要获取所有的站点以及对应的编号-->把数据存到字典当中key name value code 输入出发地 输入目的地 输入出发日期 1.定位input标签

2021-03-06 19:21:34 356 2

原创 selenium 是如何操作cookie

# @ Time : 2021/3/2 15:02# @ Author : Ellen'''cookie可以模拟登录 可以做反爬这里讲selenium 是如何操作cookie'''from selenium import webdriverimport timeimport jsonimport requests# driver = webdriver.Chrome()# driver.get('https://www.baidu.com/')# 获取百度的cookie# c

2021-03-02 22:22:29 143

原创 爬虫-selenium

selenium是一个web的自动化测试工具 可直接运行在浏览器上 支持所有主流的浏览器 可以接收指令 让浏览器自动加载页面 获取需要的数据 甚至页面截取chromedriver 是一个驱动Chrome浏览器的驱动程序https://developer.aliyun.com/mirror/NPM?from=tnpm...

2021-03-01 22:06:46 125

原创 配置Redis数据库、配置工程日志

配置Redis数据库安装django-redis扩展包pip install django-redis文档地址:https://django-redis-chs.readthedocs.io/zh_CN/latest/配置Redis数据库CACHES = { "default": { # 默认 "BACKEND": "django_redis.cache.RedisCache", "LOCATION": "redis://127.0.0.1:6379/0

2021-03-01 12:28:34 69

原创 BeautifulSoup4--bs4

bs4概念如何学习?是什么? 能够做什么? 学习这个技术有什么意义?BeautifulSoup4 美丽的汤 4百度的网站 和 豆瓣的网站 结构lxml pyquery BeautifulSoup4...网页信息提取库解析网页的时候 因为每个网页的结构都不一样 所以采用最适合解析网页的技术我们只需要记住一些方法的使用就可以了 requests get() post ...另外的一种学习方法源码分析 它主要的都是一些导航查找 修改的方法bs4 快速入门pip install

2021-02-27 20:37:14 218

原创 爬取豆瓣top250

案例实现需求:要爬取豆瓣top250的电影信息数据(标题 评分 引言 详情页的url) 10页的数据都要爬取 并写入到csv文件中https://movie.douban.com/top250?start=0&filter= 第一页https://movie.douban.com/top250?start=25&filter= 第二页https://movie.douban.com/top250?start=50&filter= 第三页ht

2021-02-25 23:23:48 173

原创 xpath

xpath网络请求模块 正则表达式比如:人才的标准python技术好 工作能力强 颜值高 (不要工资的)xxx地方 xxx街道xxx人才市场xxx写字楼 data所以 xpath就是一种可以根据地址找人的技术xpath的概念xpath -> XML Path Language XML的查询语言 节点 文档中通过元素的属性进行导航XML 可扩展标记语言 和html差不多,还有简单的数据存储功能html 超文本标记语言 可用于创建网页lxml 是Python当中的一个

2021-02-25 11:53:28 54

原创 百度贴吧图片爬取

# @ Time : 2021/2/23 23:11# @ Author : Ellen'''百度贴吧图片爬取需求:爬取一个贴吧主题的图片思路:找到这个(些)图片的url然后保存图片1分析页面找到了图片的url地址 但是发现源码中并没有一种是通过 network分析数据接口另一种是通过selenlum进行模拟爬取数据(后面再学习)''''''url1 = 'https://tieba.baidu.com/photo/g/bw/picture/list?kw=%E6%B5%B7%E

2021-02-24 17:03:13 136

原创 cookie与session 在爬虫中的作用

cookie: 通过在客户端记录信息确定用户的身份cookie的作用 反爬 模拟登陆cookie.py# @ Time : 2021/2/22 13:58# @ Author : Ellenimport requests# url = 'https://www.zhihu.com/'# url = 'https://www.zhihu.com/hot'## headers = {# 'User-Agent': 'Mozilla/5.0 (Window

2021-02-22 21:03:06 8181

原创 爬取贴吧数据

爬取贴吧数据:1.输入要爬取贴吧的名称(例如:海贼王)2.输入起始页和终止页(1-2)3.把每一页的内容保存到本地(例如1.html 2.html)思路:页数的规律https://tieba.baidu.com/f?kw=%???&pn=0 第一页https://tieba.baidu.com/f?kw=%???&pn=50 第二页https://tieba.baidu.com/f?kw=%???&pn=100 第三页pn = (page-1

2021-02-22 13:32:12 1097

原创 上下文管理器

90%工程师都说不明白的上下文管理器我想你对 Python 中的with语句一定不陌生,尤其是在文件的读写操作中,不过我想,大部分人可能习惯了它的使用,却并不知道隐藏在其背后的“秘密”。那么,究竟with语句要怎么用,与之相关的上下文管理器(context manager)是什么,它们之间又有着怎样的联系呢?这篇文章就为大家带来解密什么是上下文处理器?在任何一门编程语言中,文件的输入输出、数据库的连接断开等,都是很常见的资源管理操作。但资源都是有限的,在写程序时,我们必须保证这些资源在使用过后得到释

2021-01-23 20:57:13 123

原创 配置工程项目

配置工程项目创建商城虚拟环境pipenv shell安装Django框架pip install django==2.2 xx创建商城Django工程django-admin startproject 工程名称配置开发环境项目的环境分为开发环境和生产环境。• 开发环境:用于编写和调试项目代码。• 生产环境:用于项目线上部署运行。指定开发环境配置文件配置MySQL数据库配置数据库安装所需模块pip install mysqlclient配置Redis数据库商城数据缓

2021-01-21 18:09:57 67

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除