![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Python Web开发实战
AI码东道主
双一流电子信息硕士毕业,现央企搬砖人,爱折腾的数据安全+AI探索者,主业研究NLP、深度学习应用到数据安全,业余探索多种副业,包括RPA、AI文章写作、AI公众号爆文、爬虫、CSDN知识付费等副业项目,有志同道合、一起努力的伙伴可以戳我交流。
展开
-
Python Django开发 异常及解决办法(一)
Django是一个常用的Python Web框架,开发中可能会遇到一些难以解决的异常。ValueError: The view *** didn't return...,是视图函数没有返回值。NoReverseMatch。No migrations to apply。OperationalError。on_delete=SET_NULL。xadmin ImportError。xadmin TypeError。ImportError。AttributeError。ModuleNotFoundError。原创 2020-01-19 12:56:59 · 5450 阅读 · 1 评论 -
Python Django开发 经验技巧总结(二)
Django是一个开放源代码的Web应用框架,由Python写成。采用了MTV的框架模式,即模型M,视图V和模版T。在基于Django进行Web开发时,有很多常用的经验和技巧,比如模板中变量的运算、getlist获取多个值、查询集去重distinct()、for循环计数实现自增、倒序返回数据、添加背景图片、启动服务让其他电脑可访问等,总结了一些经验技巧,供大家参考。原创 2020-01-19 12:50:47 · 3570 阅读 · 1 评论 -
Python Django开发 经验技巧总结(一)
Django是一个开放源代码的Web应用框架,由Python写成。采用了MTV的框架模式,即模型M,视图V和模版T。在基于Django进行Web开发时,有很多常用的经验和技巧,比如前后台数据传递、与数据库交互数据、表单操作、消息处理、日期时间数据类型操作、获取用户名、数据表属性自增自减操作、执行原始sql语句和分页显示数据等,总结了一些经验技巧,供大家参考。原创 2020-01-18 18:18:18 · 6348 阅读 · 0 评论 -
Python Django开发 异常及解决办法(三)
Django是一个常用的Python Web框架,开发中可能遇到一些难以解决的异常。’gbk’ codec can’t decode byte 0xa6。原生SQL报错Unknown column。No migrations to apply。使用DateTimeField字段提示received a naive datetime。UnorderedObjectListWarning。CentOS部署Incorrect string value。持续更新中。原创 2020-08-24 20:17:30 · 2497 阅读 · 3 评论 -
Django+Vue开发生鲜电商平台之11.首页、商品数量、缓存和限速功能开发
首页轮播图包括3张图片,链接对应3个商品,需要定义序列化、视图和配置路由;新品功能是通过is_new字段实现的,需要在过滤器中添加字段实现加入参数请求;商品系列分类展示功能存在着多种关系,需要定义嵌套序列化。商品点击数通过重写方法实现,收藏数可以通过重写方法实现,也可以通过信号量实现数量增减;库存量通过重写方法实现,销量在支付宝付款逻辑中实现。DRF支持缓存,需要安装扩展,主要适用于查询,可以根据需要设置过期时间;Redis对缓存进行优化。通过throttling设置访问速率,包括匿名用户和登录用户。原创 2020-08-04 21:29:16 · 3079 阅读 · 10 评论 -
Django+Vue开发生鲜电商平台之10.购物车、订单管理和支付功能
购物车需要实现在商品详情页面将该商品加入购物车后,右上角同步显示,并且点击去结算会同步显示,并且价格与数量同步;修改购物车数量需要重写update()方法。订单功能需要生成订单号和序列化,视图中需要自定义方法,完善订单详情需要嵌套定义序列化。使用支付宝需要获取公钥和私钥,开发阶段一般在沙箱环境中进行;开发文档中详细定义了各类接口的请求和相应参数;参数中的通知和返回链接用于在支付宝支付成功后跳转;使用第三方SDK更简单实现;Django中集成支付宝支付需要定义视图;前端接入支付宝支付需要获取支付宝链接。原创 2020-08-02 20:36:00 · 42618 阅读 · 7 评论 -
Django+Vue开发生鲜电商平台之9.个人中心功能开发
DRF自动实现了API文档生成,可以方便地进行测试,并且可以自动更新和验证权限。获取用户信息时需要动态设置权限和序列化,以保证不同的请求方法有不同的权限和序列化,需要重写父类的方法;Vue接口实现用户信息显示;要实现修改用户信息,需要进行类的继承,需要谨慎设置JWT过期时间。显示收藏商品地信息需要嵌套序列化,并且定义视图,实现前端接口地接入。用户留言包括添加、获取和删除功能,需要定义序列化、定义视图和配置路由,还需要设置add_time字段为只读。用户收货地址功能需要修改模型、定义序列化、视图和路由。原创 2020-07-30 21:04:08 · 2727 阅读 · 8 评论 -
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 · 3428 阅读 · 4 评论 -
Django+Vue开发生鲜电商平台之8.商品详情页功能实现
商品详情页包括很多部分。先实现商品信息,包括轮播图、商品具体信息(商品描述、价格、销售量等),序列化需要嵌套图片序列化,视图只需要继承自RetrieveModelMixin即可,与前端Vue组件结合即可显示到前端。右侧热卖商品使用的是商品的is_hot字段,在过滤器中增加该字段即可实现。用户收藏功能需要先定义序列化进行验证,添加收藏时添加到当前用户下,可以添加、列举和删除收藏,还需要限制同一用户对同一商品只能收藏一次;实现权限验证,限制用户只能操作自己的收藏,进行局部定义;结合前端实现添加和删除收藏。原创 2020-07-29 21:35:37 · 3774 阅读 · 5 评论 -
Django+Vue开发生鲜电商平台之7.用户登录和注册功能
DRF登录不再需要CSRF验证,在前后端分离项目中采用Token认证方式,测试需要使用专门的发送工具;还可以局部设置。JWT可以解决Token的一些弊端,包含头部、负载和签名3部分,具有简洁、自包含的特点,应用更广泛;使用JWT需要配置;需要自定义用户认证方法,还可以个性化配置。发送短信验证码需要使用第三方服务;DRF中接入验证码发送,需要进行验证;在用户的序列化时需要注意字段的参数和验证器的使用,验证码和密码字段都需要加入write_only属性,还可以使用信号量。前端组件实现注册、登录和退出功能。原创 2020-07-29 08:40:52 · 3784 阅读 · 3 评论 -
Django+Vue开发生鲜电商平台之6.使用Vue实现商品类别和商品数据前台显示
商品分类分为一级、二级和三级,需要实现视图、配置路由,还需要利用反向引用实现Serializer的三层嵌套引用,实现分类详情需要继承自RetrieveModelMixin。在将后端的数据显示到前端时需要根据Vue定义的接口实现,遇到禁止跨域访问可以通过对服务端进行设置或前端代理设置来解决。进一步实现点击某一个商品分类下面显示出商品详情,具体包括分类显示、价格筛选、分页和排序等功能,搜索和点击导航栏跳转的路由不同,针对不同的参数有不同的请求方法和参数,为了显示一级类别,需要增加过滤器,还实现了搜索功能。原创 2020-07-26 19:39:58 · 3180 阅读 · 7 评论 -
Django+Vue开发生鲜电商平台之5.使用DRF实现商品列表页和过滤
通过普通方式实现商品列表页json数据传递:使用Django View实现商品列表,逐个添加字段并通过json库序列化;因为字段的限制,可以改进使用serializer进行序列化。DRF实现商品列表页包括4个层次:使用serializer实现基本序列化;使用modelserializer实现商品序列化,简化代码;GenericView方式实现商品列表页和分页;viewsets和router实现商品列表页。DRF对请求和回应类进行封装;DRF提供了过滤功能,实现简单高效的过滤,包括字段过滤、搜索和排序。原创 2020-07-25 18:32:05 · 1847 阅读 · 6 评论 -
Django+Vue开发生鲜电商平台之4.Restful API和Vue介绍
随着多种平台类型普及,前后端分离变得越来越流行,前后端分离是为了适应多端、满足SPA开发模式、明确前后端分工、提高开发效率、提升前端开发主动性、降低对开发语言的依赖等优点,但是也有学习成本增加、突出文档的重要性、增大SEO难度、增加迁移成本等缺点;restful api目前是前后端分离的最佳实践,是一种标准和规范。现在前端发展的特点和趋势包括前端工程化、数据双向绑定、组件化开发、webpack等;Vue是渐进式框架,好包括Vuex、Vue-Router、axios等概念。Vue项目具有基本的代码结构。原创 2020-07-22 20:25:02 · 3034 阅读 · 7 评论 -
Django+Vue开发生鲜电商平台之3.数据模型设计和资源导入
项目初始化需要安装项目所需要的库,在PyCharm中建立Django项目,并且需要修改默认配置,建立项目的主要目录结构。很重要的一步是建立数据模型,根据业务分析的结果,建立商品、交易、用户和用户操作4个app下的多个模型。由于Django自带的后台管理系统不完善,因此采用xadmin作为后台管理系统,因为版本的问题需要对官方文件进行修改,并安装相关依赖库。先执行makemigrations生成数据库映射文件,再migrate进行数据映射;需要导入图片文件,并通过Python文件导入商品类别和商品数据。原创 2020-07-21 19:25:30 · 5429 阅读 · 11 评论 -
Django+Vue开发生鲜电商平台之2.开发环境搭建
开发的主要后端语言是Python,因此选择PyCharm作为主要的后端开发工具,安装好之后,即可进行个性化的设置。使用的数据库是MySQL,因此需要安装MySQL及其可视化工具,管理工具选择Navicat,有很多实用的功能。Python可以在官网直接下载安装,需要把安装路径配置到环境变量中,需要注意版本管理。虚拟环境可以满足不同项目对环境依赖的不同要求,这里选择virtualenv,还需要安装虚拟环境管理包。前端使用Vue框架,IDE可以使用WebStorm等,需要安装node.js,并使用cnpm。原创 2020-07-18 18:01:26 · 2233 阅读 · 7 评论 -
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 · 4197 阅读 · 4 评论 -
Flask开发 经验技巧总结
Flask作为一个主流的Python Web框架之一,有比较广泛的应用,但是有经验的小伙伴可能知道,这里边其实也有很多坑,让你不得不防。Flask中的Referer不是referer,而是referrer,多了一个r。为视图访问增加计时器,可以设置多进程,但是最可靠的还是将访问量保存到数据库。持续更新中...原创 2020-06-25 10:09:13 · 912 阅读 · 0 评论