1 TD

学生身份

我要认证

本人目前大学本科,热爱IT,希望学习更多的前沿技术,在互联网方面取得发展,在这个领域开创出属于自己的一片天地。

等级
TA的排名 3k+

Django+Vue开发生鲜电商平台之11.首页、商品数量、缓存和限速功能开发

首页轮播图包括3张图片,链接对应3个商品,需要定义序列化、视图和配置路由;新品功能是通过is_new字段实现的,需要在过滤器中添加字段实现加入参数请求;商品系列分类展示功能存在着多种关系,需要定义嵌套序列化。商品点击数通过重写方法实现,收藏数可以通过重写方法实现,也可以通过信号量实现数量增减;库存量通过重写方法实现,销量在支付宝付款逻辑中实现。DRF支持缓存,需要安装扩展,主要适用于查询,可以根据需要设置过期时间;Redis对缓存进行优化。通过throttling设置访问速率,包括匿名用户和登录用户。

2020-08-04 21:29:16

Django+Vue开发生鲜电商平台之10.购物车、订单管理和支付功能

购物车需要实现在商品详情页面将该商品加入购物车后,右上角同步显示,并且点击去结算会同步显示,并且价格与数量同步;修改购物车数量需要重写update()方法。订单功能需要生成订单号和序列化,视图中需要自定义方法,完善订单详情需要嵌套定义序列化。使用支付宝需要获取公钥和私钥,开发阶段一般在沙箱环境中进行;开发文档中详细定义了各类接口的请求和相应参数;参数中的通知和返回链接用于在支付宝支付成功后跳转;使用第三方SDK更简单实现;Django中集成支付宝支付需要定义视图;前端接入支付宝支付需要获取支付宝链接。

2020-08-02 20:36:00

Django+Vue开发生鲜电商平台之9.个人中心功能开发

DRF自动实现了API文档生成,可以方便地进行测试,并且可以自动更新和验证权限。获取用户信息时需要动态设置权限和序列化,以保证不同的请求方法有不同的权限和序列化,需要重写父类的方法;Vue接口实现用户信息显示;要实现修改用户信息,需要进行类的继承,需要谨慎设置JWT过期时间。显示收藏商品地信息需要嵌套序列化,并且定义视图,实现前端接口地接入。用户留言包括添加、获取和删除功能,需要定义序列化、定义视图和配置路由,还需要设置add_time字段为只读。用户收货地址功能需要修改模型、定义序列化、视图和路由。

2020-07-30 21:04:08

Django+Vue开发生鲜电商平台之8.商品详情页功能实现

商品详情页包括很多部分。先实现商品信息,包括轮播图、商品具体信息(商品描述、价格、销售量等),序列化需要嵌套图片序列化,视图只需要继承自RetrieveModelMixin即可,与前端Vue组件结合即可显示到前端。右侧热卖商品使用的是商品的is_hot字段,在过滤器中增加该字段即可实现。用户收藏功能需要先定义序列化进行验证,添加收藏时添加到当前用户下,可以添加、列举和删除收藏,还需要限制同一用户对同一商品只能收藏一次;实现权限验证,限制用户只能操作自己的收藏,进行局部定义;结合前端实现添加和删除收藏。

2020-07-29 21:35:37

Django+Vue开发生鲜电商平台之7.用户登录和注册功能

DRF登录不再需要CSRF验证,在前后端分离项目中采用Token认证方式,测试需要使用专门的发送工具;还可以局部设置。JWT可以解决Token的一些弊端,包含头部、负载和签名3部分,具有简洁、自包含的特点,应用更广泛;使用JWT需要配置;需要自定义用户认证方法,还可以个性化配置。发送短信验证码需要使用第三方服务;DRF中接入验证码发送,需要进行验证;在用户的序列化时需要注意字段的参数和验证器的使用,验证码和密码字段都需要加入write_only属性,还可以使用信号量。前端组件实现注册、登录和退出功能。

2020-07-29 08:40:52

Django+Vue开发生鲜电商平台之6.使用Vue实现商品类别和商品数据前台显示

商品分类分为一级、二级和三级,需要实现视图、配置路由,还需要利用反向引用实现Serializer的三层嵌套引用,实现分类详情需要继承自RetrieveModelMixin。在将后端的数据显示到前端时需要根据Vue定义的接口实现,遇到禁止跨域访问可以通过对服务端进行设置或前端代理设置来解决。进一步实现点击某一个商品分类下面显示出商品详情,具体包括分类显示、价格筛选、分页和排序等功能,搜索和点击导航栏跳转的路由不同,针对不同的参数有不同的请求方法和参数,为了显示一级类别,需要增加过滤器,还实现了搜索功能。

2020-07-26 19:39:58

Django+Vue开发生鲜电商平台之5.使用DRF实现商品列表页和过滤

通过普通方式实现商品列表页json数据传递:使用Django View实现商品列表,逐个添加字段并通过json库序列化;因为字段的限制,可以改进使用serializer进行序列化。DRF实现商品列表页包括4个层次:使用serializer实现基本序列化;使用modelserializer实现商品序列化,简化代码;GenericView方式实现商品列表页和分页;viewsets和router实现商品列表页。DRF对请求和回应类进行封装;DRF提供了过滤功能,实现简单高效的过滤,包括字段过滤、搜索和排序。

2020-07-25 18:32:05

Django+Vue开发生鲜电商平台之4.Restful API和Vue介绍

随着多种平台类型普及,前后端分离变得越来越流行,前后端分离是为了适应多端、满足SPA开发模式、明确前后端分工、提高开发效率、提升前端开发主动性、降低对开发语言的依赖等优点,但是也有学习成本增加、突出文档的重要性、增大SEO难度、增加迁移成本等缺点;restful api目前是前后端分离的最佳实践,是一种标准和规范。现在前端发展的特点和趋势包括前端工程化、数据双向绑定、组件化开发、webpack等;Vue是渐进式框架,好包括Vuex、Vue-Router、axios等概念。Vue项目具有基本的代码结构。

2020-07-22 20:25:02

Django+Vue开发生鲜电商平台之3.数据模型设计和资源导入

项目初始化需要安装项目所需要的库,在PyCharm中建立Django项目,并且需要修改默认配置,建立项目的主要目录结构。很重要的一步是建立数据模型,根据业务分析的结果,建立商品、交易、用户和用户操作4个app下的多个模型。由于Django自带的后台管理系统不完善,因此采用xadmin作为后台管理系统,因为版本的问题需要对官方文件进行修改,并安装相关依赖库。先执行makemigrations生成数据库映射文件,再migrate进行数据映射;需要导入图片文件,并通过Python文件导入商品类别和商品数据。

2020-07-21 19:25:30

Python Django开发 异常及其解决办法(二)

Django是一个常用的Python Web框架,开发中可能遇到一些难以解决的异常。ImportError 'QUERY_TERMS'。TypeError: render()。RuntimeError: INSTALLED_APPS。__str__ returned non-string。DRF报错AssertionError。UnorderedObjectListWarning。non_field_errors。AttributeError。DRF访问文档报错。TypeError需要返回实例化对象。

2020-07-20 17:57:27

Django+Vue开发生鲜电商平台之2.开发环境搭建

开发的主要后端语言是Python,因此选择PyCharm作为主要的后端开发工具,安装好之后,即可进行个性化的设置。使用的数据库是MySQL,因此需要安装MySQL及其可视化工具,管理工具选择Navicat,有很多实用的功能。Python可以在官网直接下载安装,需要把安装路径配置到环境变量中,需要注意版本管理。虚拟环境可以满足不同项目对环境依赖的不同要求,这里选择virtualenv,还需要安装虚拟环境管理包。前端使用Vue框架,IDE可以使用WebStorm等,需要安装node.js,并使用cnpm。

2020-07-18 18:01:26

Django+Vue开发生鲜电商平台之1.项目介绍

本项目旨在使用Django、Vue和REST Framework等技术开发一个前后端分离的生鲜电商平台。项目的核心技术为Vue+Django+REST Framework前后端分离技术,其中,vue实现前端项目,django rest framework系统实现前台功能,xadmin实现后台管理。Django REST Framework有很多技术要点,用于实现不同的功能,Vue也有很多技术要点,也会对Django进行深入讲解,并且针对开发中经常出现的问题给出相应的解决办法,同时需要有一定的技术储备。

2020-07-13 18:49:40

Python全栈(八)Flask项目实战之13.项目部署

论坛项目中很多地方都用到了Ajax,即异步JavaScript和XML,可以部分更新网页,提高网页效率。部署项目时,对于个人或小微企业,一般采用云服务器即可,一般选择CentOS系统,需要通过安全组设置开放常用端口,还需要拍快照保存服务器状态,连接工具使用XShell;需要进行MySQL的安装和配置,并安装Redis。需要安装虚拟环境,上传代码使用FileZilla,并安装依赖库;启动项目前需要删除文件、重新映射数据库。实际生产中部署项目使用Nginx和uwsgi,来提高项目并发性能,满足高并发需求。

2020-07-06 18:51:58

Python全栈(八)Flask项目实战之12.前台页面完善

首页可以根据不同的板块和排序方式进行显示,要想两者同时满足,需要在指定路由时传入参数,即模板和视图函数都需要进行修改。使用celery可以实现多任务、提高发送效率,Python中使用需要安装,在一个函数中实现任务,在另一个文件中执行,并在命令行中开启监控。Flask项目中使用celery需要初始化,传入参数,并在视图函数中导入,要注意循环引用的问题。阅读数可以通过增加一个字段来实现,只要访问一次视图函数,对应阅读数即加1;评论数也要增加一个字段。点赞功能也需要增加字段并新建表,并通过Ajax传递数据。

2020-07-05 20:43:37

Python全栈(八)Flask项目实战之11.帖子管理和帖子分页

帖子详情页面的评论使用百度富文本编辑器,可以定制文本编辑页面,需要创建模板、完善视图函数,要实现通过点击文章链接就自动跳转到文章详情页。后台帖子管理主要有两个功能,即加精(取消加精)和移除,需要创建保存精华帖的模型,并完善视图函数和模板以实现加精与取消加精之间的切换,删除是假删,即将is_delete字段设为1。发布帖子需要先创建模型,并实现表单验证,并完善模板和视图函数,还需要实现根据不同板块选择在主页显示不同的文章。前台帖子分页需要使用插件,完善模板和视图函数,并创建测试数据,还可以根据需要定制。

2020-07-04 09:40:36

Python全栈(八)Flask项目实战之10.前台发布帖子和后台帖子管理页面搭建

通过完善模板和视图函数在前台显示相关信息,轮播图和板块显示出来,并点击板块会有颜色显示,地址中参数值也会变化。创建相关JS、模板和视图函数,并且需要通过装饰器实现登录验证,并创建钩子函数用于在上下文保存前台用户。需要创建模型保存博客数据,并进行映射。文章的发布需要表单验证,并且需要实现业务逻辑,可以使用重定向和Ajax两种方式返回;还需要进一步实现在编辑器中上传本地图片并保存到七牛云,并抽离抽离重复Ajax代码。文章发布之后还需要在前台显示出来,即完善模板和视图函数,还需要进行后台帖子管理页面的搭建。

2020-07-02 20:32:30

Python全栈(八)Flask项目实战之9.CMS七牛云上传和板块管理

将后台轮播图数据展示到前台需要在视图函数中查询,并在模板中修改。图片文件上传到七牛云需要在视图函数中生产token,并在JS文件中实现上传的数据传递和逻辑处理;JS文件中setUp()是对七牛云的初始化。板块管理是管理帖子的分类,需要实现模板并通过JS文件实现,需要创建板块数据模型,并进行数据库的映射。实现展示和增加板块需要先定义验证表单,并在视图函数中增加业务处理逻辑,具体操作是通过JS实现的;修改板块也是通过JS实现的,需要进行表单验证;删除也是通过表单验证。帖子的编辑通过Editor.md实现。

2020-06-29 21:59:18

Python全栈(八)Flask项目实战之8.CMS后台轮播图管理

首先在前一节的基础上调整轮播图的样式,并且实现模板继承。后台管理轮播图,还要新增管理轮播图权限,新建js文件用于Ajax传递数据,并且开发出轮播图管理的基本雏形。在添加轮播图时有两种实现方式,本地上传采用上传到第三方平台。添加轮播图时需要创建模型,并且映射到数据库中,并新增表单类进行验证,还需要将数据同步到管理页面。编辑轮播图也是通过JS实现的,修改数据也需要进行表单验证;删除banner也是通过JS实现的,还可以通过增加字段来实现假删除。图片上传平台使用七牛云,需要创建对象存储空间并使用SDK实现。

2020-06-27 21:05:10

Python全栈(八)Flask项目实战之7.前台注册和登录功能

在完善注册功能时,将生成的图形验证码和短信验证码保存到Redis中,以在指定时间内有效,并定义表单来验证各个字段和验证码的正确性,注册成功后数据插入数据表。如果注册页是从某一个页面跳转来的,还要实现注册完后跳转回该页面,这主要是通过request.referrer来实现的,并且需要判断地址是否是站内的地址、保证安全性。登录功能也需要通过表单对各字段进行验证,并在视图文件中实现视图类和业务逻辑,也需要实现在登录之后的页面跳转。在搭建首页页面时,首先需要利用模板定义导航栏,在此基础上实现轮播图的动态效果。

2020-06-25 18:37:37

那些在Flask开发中不得不注意的坑

Flask作为一个主流的Python Web框架之一,有比较广泛的应用,但是有经验的小伙伴可能知道,这里边其实也有很多坑,让你不得不防。Flask中的Referer不是referer,而是referrer,多了一个r。持续更新中...

2020-06-25 10:09:13

查看更多

勋章 我的勋章
  • 签到王者
    签到王者
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 技术圈认证
    技术圈认证
    用户完成年度认证,即可获得
  • 阅读者勋章Lv2
    阅读者勋章Lv2
    授予在CSDN APP累计阅读博文达到7天的你,是你的坚持与努力,使你超越了昨天的自己。
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 1024勋章
    1024勋章
    #1024程序员节#活动勋章,当日发布原创博客即可获得
  • 勤写标兵Lv4
    勤写标兵Lv4
    授予每个自然周发布9篇以上(包括9篇)原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。
  • 原力探索
    原力探索
    参与《原力计划【第二季】——打卡挑战》的文章入选【每日精选】的博主将会获得此勋章。
  • 原力突破
    原力突破
    参与《原力计划【第二季】— 打卡挑战》的文章入选【打卡挑战周榜】的博主,即可获得此勋章。
  • 学习力
    学习力
    《原力计划【第二季】》第一期主题勋章 ,第一期活动已经结束啦,小伙伴们可以去参加第二期打卡挑战活动获取更多勋章哦。
  • 原力新人
    原力新人
    在《原力计划【第二季】》打卡挑战活动中,成功参与本活动并发布一篇原创文章的博主,即可获得此勋章。
  • 原力探索 · S
    原力探索 · S
    在《原力计划【第二季】》打卡挑战活动中,发布 12 篇原创文章参与活动的博主,即可获得此勋章。(本次活动结束后统一统计发放)
  • 分享宗师
    分享宗师
    成功上传21个资源即可获取