02 2020 档案
摘要:ModelSerializer不能和APIView结合使用,会导致序列化器接收不到数据。
阅读全文
摘要:字符串转date import datetime start_date = datetime.datetime.strptime('2020-02-02', "%Y-%m-%d") date转字符串 import datetime date_str= datetime.now().strftime(
阅读全文
摘要:facility = models.ManyToManyField("Facility", verbose_name="和设施表之间多对多关系")当模型中出现多对多关系时,需要使用特殊方法添加数据。 首先先创建一个模型对象,然后通过特殊方法添加数据。 house = House.objects.cr
阅读全文
摘要:Dockerfile创建: 大:文件首字母必须大写,且文件名必须为Dockerfile。 空:尽量让Dockerfile文件在一个空的文件夹中。 单:一个Dockerfile只实现一个功能。 少:尽量少写Dockerfile的代码。 Dockerfile文件的定义必须严格遵守以上四点。 Docker
阅读全文
摘要:容器的实质是进程,但与直接在宿主执行的进程不同,容器进程运行于属于自己的独立的命名空间。因此容器可以拥有自己的root文件系统、自己的网络配置、自己的进程空间,甚至自己的用户 ID 空间。容器内的进程是运行在一个隔离的环境里,使用起来,就好像是在一个独立于宿主的系统下操作一样。这种特性使得容器封装的
阅读全文
摘要:Docker 镜像是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。镜像不包含任何动态数据,其内容在构建之后也不会被改变。 镜像只是一个虚拟的概念,其实际体现并非由一个文件组成,而是由一组文件系统组成,或
阅读全文
摘要:在Docker从仓库下载镜像是非常慢的,所以今天搞一个Docker设置加速器教程。 1. 创建一个Docker的配置文件。 sudo vim /etc/docker/daemon.json 2. 编写配置文件。 { "registry-mirrors": [ "此处写镜像源地址" ] } Docke
阅读全文
摘要:这里我们采用动静分离的方式来部署美多商城项目。 动态请求:采用uwsgi与Django进行通信处理动态业务。 静态请求:采用Ngins通过socket与uwsgi进行通信处理静态业务。 第一步:实现uwsgi与Django通信。 1.在Django程序中,项目根路径创建uwsgi.ini文件,用来编
阅读全文
摘要:所谓负载均衡,就是将多个任务按一定的规则分配给多个服务器,让每个服务器都能承载一定的任务数量。 代码: #负载均衡 upstream backends { server 192.168.229.128:10086 ; server 192.168.229.128:10087 ; server 192
阅读全文
摘要:所谓,反向代理就是,客户端向A服务器地址发送请求,A服务器接收到客户端请求后又将请求转发给了B服务器,最后又将B服务响应的数据响应给了客户端。 通过配置文件,可以实现Nginx的反向代理。 代码: 1 server { 2 server_name 192.168.0.105; 3 listen 33
阅读全文
摘要:先进入Nginx的配置文件中,进行配置。 Nginx配置文件夹的区别: cd /etc/nginx/conf.d/ 创建.conf后缀的文件 /etc/nginx/sites-enabled 创建任意类型文件 cd /etc/nginx/conf.d/sudo vim meiduo_mis.conf
阅读全文
摘要:配置server代码段: server { server_name www.meiduo.site; listen 8080; root /home/python/Desktop/meiduo_mall_admin/dist; index index.html; } 其中: server_name
阅读全文
摘要:class CategoryView(ListAPIView): '''展示商品分类信息API''' # 因为前段是通过路径参数进行传参,回发送三次请求分别来获取三种商品分类数据 # 设置查询集 # 重写get_queryset,根据参数指定数据集 def get_queryset(self): p
阅读全文
摘要:一共分为四层关系。 第一层:视图 用来接收前端传递的参数,并实现业务逻辑相关的数据处理,并将数据通过创建序列化器对象的形式传递给序列化器。 第二层:序列化器 接收前端传递的数据,并将数据进行序列化操作,然后传递给模型。 第三层:模型 接收序列化器传递的数据,将序列化器传递的数据转换成模型数据,并将数
阅读全文
摘要:我们,都知道,DRF框架是一款高度封装的框架。 我们可以通过重写一些方法来实现自定义的功能。 今天,就来说说在视图中重写和序列化器中重写方法的区别。 在视图中重写方法: 接收请求,处理数据(业务逻辑),最后响应JSON数据。 在序列化器中重写方法: 实现和Model的交互,主要实现对数据库的操作。
阅读全文
摘要:在项目中,我们多需要自定义分页器。 代码实现: class PageNum(PageNumberPagination): '''自定义分页器''' # 每页显示个数 page_size = 10 page_size_query_param = 'pagesize' # 每页最多显示个数 max_pa
阅读全文
摘要:在DRF项目的开发中,我们通过直接使用序列化器保存的用户信息时,用户的密码是被明文保存到数据库中。 代码实现: def create(self, validated_data): '''重写create方法实现,将密码加密后保存''' # 将密码加密后保存 user = User.objects.c
阅读全文
摘要:在REST后台开发中,我们需要通过业务逻辑来选择数据集或者序列化器。 选择数据集: # 重写get_queryset实现通过业务逻辑选择指定数据集 def get_queryset(self): ''' 通过前段传递过来的keyword选择指定数据集 :return: ''' # 获取keyword
阅读全文
摘要:在DRF项目中,我们可以通过重写指定的方法,来自定义返回的数据。 1. 重写jwt_response_payload_handler方法 def jwt_response_payload_handler(token, user=None, request=None): """ 自定义jwt认证成功返
阅读全文
摘要:镜像源: 阿里云:https://mirrors.aliyun.com/pypi/simple/豆瓣:https://pypi.douban.com/simple/清华大学:https://pypi.tuna.tsinghua.edu.cn/simple/中国科学技术大学 http://pypi.m
阅读全文
摘要:什么是JWT Json web token (JWT), 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准((RFC 7519).该token被设计为紧凑且安全的,特别适用于分布式站点的单点登录(SSO)场景。JWT的声明一般被用来在身份提供者和服务提供者间传递被认证的用户身份信息,
阅读全文
摘要:DRF项目,是一个前后端分离的Web框架。 本项目中,我们前端采用的是VUE框架。 前后端分离的情况就会出现一个问题,前端的Ajax请求无法请求到后端API(接口)。 那么,为什么会出现这种问题呢? 因为,浏览器的同源策略不允许,不同源的脚本(网站代码Ajax)在没有经过明确授权的情况下,去读写对方
阅读全文
摘要:对于视图集,我们除了可以自己手动指明请求方式与动作action之间的对应关系外,还可以使用Routers来帮助我们快速实现路由信息。 REST framework提供了两个router SimpleRouter DefaultRouter 1. 使用方法: 1. 创建路由对象 # 定义一个路由器对象
阅读全文
摘要:DRF框架中,一共有三个视图集类,我们这里只说明ModelViewSet一个。 ModelViewSet是封装度最高的DRF的视图类。包含了怎删改查中的所有接口操作。 它继承自GenericViewSet、ListModelMixin、RetrieveModelMixin、CreateModelMi
阅读全文
摘要:所谓,视图子类就是继承自视图扩展类和GenericAPIView类的类。 他们,帮我们将请求方法封装好了,我们只需要,使用视图继承这些子类即可使用其中的方法。 1) CreateAPIView 提供 post 方法 继承自: GenericAPIView、CreateModelMixin 2)Lis
阅读全文
摘要:这里呢,我将为大家介绍一下DRF框架,为我们提供的试图扩展类的使用方法即作用。 在使用视图扩展类时,需要将mixins模块导入到view文件中。 from rest_framework import mixins 并且,在使用视图扩展类时,必须结合GenericAPIView基类一起使用。 所谓,视
阅读全文
摘要:Django REST framwork 提供的视图的主要作用: 控制序列化器的执行(检验、保存、转换数据) 控制数据库查询的执行 1. DRF框架中的Request和Response REST framework 传入视图的request对象不再是Django默认的HttpRequest对象,而是
阅读全文
摘要:ModelSerializer是Serializer的子类,序列化和反序列化跟Serializer一样。 ModelSerializer与常规的Serializer相同,但提供了: 基于模型类自动生成一系列字段 基于模型类自动为Serializer生成validators,比如unique_toge
阅读全文
摘要:昨天,我们完成了Serializer序列化器的反序列化操作,那么今天我们就来学习Serializer序列化器的最后一点知识,反序列化操作。 首先,我们定要明确什么是反序列化操作? 反序列化操作:JOSN数据 --> 字典数据 -->验证通过的字典数据 --> 模型数据 我们在进行反序列化操作时,首先
阅读全文
摘要:在DRF框架中,有两种序列化器,一种是Serializer,另一种是ModelSerializer. 今天,我们就先来学习一下Serializer序列化器。 使用Serializer序列化器的开发步骤: 1. 定义Serializer序列化器 首先,我们要在子应用中,创建见一个serializers
阅读全文
摘要:首先,我们需要明白序列化和反序列化的过程指的是什么。 序列化操作:将模型数据 > 字典数据 >JSON数据(响应JSON数据的操作) 反序列化操作:将JSON数据 > 字典数据 > 校验通过的字典数据 >模型数据(添加、修改数据的操作) 接下来,我们将学习DRF框架,通过DRF框架来提高我们开发AP
阅读全文
摘要:学习DRF框架,首先我们就需要明白为什么要学习这个框架。 接下来我们就先用原生的Django框架来定义一个符合RESTful设计方法的接口(API)。 RESTful接口的需求如下: GET /books/ 查询所有图书信息 POST /books/ 新增图书信息 GET /books/<pk>/
阅读全文
摘要:DRF框架是python_web中采用前后端分离开发模式的框架,其处理JSON数据是最快的。 通过DRF框架,我们后端程序员只需要拼接并响应JSON数据即可,并且数据复用性高适用于浏览器端、APP端等。 在前后端分离的应用模式中,后端仅返回前端所需的数据,不再渲染HTML页面,不再控制前端的效果。至
阅读全文
摘要:1. 结算订单 1.1 核心思想: 查询和展示订单中要结算的信息(收货地址、支付方式、购物车中被勾选的商品信息) 1.2 实现方式: 以查询购物车中被勾选的商品信息为例 redis_cart = redis_conn.hgetall('carts_%s' % user.id) redis_selec
阅读全文
摘要:1. 支付宝准备 1.1 沙箱应用(包含测试账号) 1.2 密钥(应用公私钥和支付宝公钥) 1.3 支付宝SDK 2. 订单支付功能 2.1 核心思想: 对接支付宝,向支付宝索取扫码登录页面,方便用户使用自己的支付宝登录到支付宝服务器 2.2 实现方式: # 查询要支付的订单 order = Ord
阅读全文
摘要:1. FastDFS和Docker 1.0 为什么要使用FastDFS和Docker? 因为商品数据分为了商品图片数据(文件),还有商品信息数据(字符串:商品名称,价格,...) 商品图片数据(文件)需要使用单独的文件存储服务器进行管理 文件存储服务器:FastDFS 如何安装并运行文件存储服务器:
阅读全文
摘要:美多商城的购物车逻辑,主要分为登录用户的购物车和未登录用户的购物车。 登录用户的购物车:我们通过Redis数据库进行存储,使用HASH表存储购物车商品信息,使用Set存储购物车中被勾选的商品。 未登录用户的购物车:我们通过COOKIE进行存储。 1. 购物车的存储方案如下: 1.1 已登录的用户的购
阅读全文

浙公网安备 33010602011771号