Django框架
文章平均质量分 95
实战演练
RStanwen
这个作者很懒,什么都没留下…
展开
-
商城后台项目
商城项目DRF框架编写一: 项目初始化1.1: 创建新的子应用:1.2: 在跨域白名单中增加静态服务器域名:1.3: 将meiduo_mall_admin移动到项目中:二:JWT单点登录:2.1: 安装JWT单点登录的拓展组件:2.2: 使用拓展组件完成JWT登录:三:主页数据统计:3.1:用户总数的统计:3.2: 新增用户统计:3.3:日活跃用户统计:3.4:日下单用户统计:3.5:月增用户统计:3.6:日分类商品访问量统计:四:用户管理:4.1:获取用户列表(分页)五:商品管理:5.1:SKU管理:1:原创 2021-03-19 20:54:16 · 1083 阅读 · 0 评论 -
DRF分页器源码分析
一: 分析Paginator:1: validate_num函数:作用:校验number的合法性。2:get_page函数:作用:将number变成一个合理的number。3: page函数:作用:处理这页的开始和结束。4:_get_page函数:作用:获取Pgae对象。5:count函数:作用:获取所有页的对象总数:6:num_pages函数:作用:获取分页总数7:page_range函数:作用: 获取一个可迭代对象,用于以后的遍历。二:PageNumberPa原创 2020-10-12 16:33:39 · 362 阅读 · 0 评论 -
DRF框架总结
一:序列化和反序列化:1:序列化:将对象转化成“串行化”数据形式。DRF: 模型类对象—> 字典----> json数据2:反序列化: 将"串行化"数据转换成对象。DRF : json字符串 —>字典—> 数据校验(产生有效数据)—> 模型类对象3:序列化操作流程:(1)、获取目标数据(一个or多个模型类对象)单一对象:book = BookInfo.objects.get(pk=1)多个对象:books = BookInfo.objects.all()原创 2020-10-09 17:18:35 · 741 阅读 · 1 评论 -
Django与DRF集成进行模糊查询
官方文档地址:https://django-filter.readthedocs.io/en/latest/guide/rest_framework.html一:功能:实现大于某阅读量或者小于某阅读量的查询。1:在视图中定义一个对应模型类的过滤器:# 新建一个过滤器class BookFilter(filters.FilterSet): bread__gt = filters.NumberFilter(field_name='bread', lookup_expr='gt')原创 2020-09-24 21:38:03 · 1033 阅读 · 0 评论 -
day04---认证,权限,限流,过滤,分页,异常处理,接口文档中心
概述:这三个都是APIView提供的功能。身份认证—> 你是谁权限检查—> 你能干啥一:认证:原创 2020-09-24 12:56:52 · 451 阅读 · 1 评论 -
day03---路由问题
一:ViewSetMixin方法的原理:1:django原有的路由分发逻辑:2:ViewSetMixin源码分析:3:django和DRF框架路由流程:二:DRF的自动映射路由:(SimpleRouter或者DefaultRouter):1: 流程:实例化路由对象—>注册视图集(指定映射规则)—>把生成的路由映射到路由表中。2:自动映射路由:# 实例化路由对象router = SimpleRouter()# 指定映射规则:prefix->前缀, viewset -原创 2020-09-22 21:39:44 · 481 阅读 · 0 评论 -
day03---继承5大扩展类和五大子类
一:继承五大扩展类:1:序列化返回多个模型类对象:(ListModelMixin)1.1:ListModelMixin干了什么??1.2:所以继承之后的代码是:class BooksView(GenericAPIView, ListModelMixin): # 定义类属性 queryset = BookInfo.objects.all() serializer_class = BookInfoModelSerializers # :序列化返回多个模型类对象原创 2020-09-22 19:08:57 · 391 阅读 · 0 评论 -
day03---通用视图---GenericAPIView
一:序列化返回多个模型类对象:1;视图class BookView(GenericAPIView): # 定义类属性 queryset = BookInfo.objects.all() serializer_class = BookInfoModelSerializers # :序列化返回多个模型类对象 def get(self, request): # 1:获取查询集 books = self.get_queryset()原创 2020-09-22 17:15:05 · 354 阅读 · 0 评论 -
day02---DRF视图---APIView
一:DRF基本视图继承关系简图:二:1:定义两个序列化器:from rest_framework import serializersfrom .models import *class BookInfoModelSerializers(serializers.ModelSerializer): class Meta: model = BookInfo filter = "__all__" class HeroInfoModelSer原创 2020-09-21 13:01:58 · 418 阅读 · 0 评论 -
Django使用终端创建superuser报错。
一: 报错内容:django.db.utils.IntegrityError: (1062, "Duplicate entry '' for key 'mobile'")二: 出错原因:因为之前创建的超级用户的mobile字段没有设置,是空的。而这次再次设置就会跟之前的重复了。三: 解决方案:将之前的超级用户的mobile添加数据,再次使用命令。python3 manage.py createsuperuser...原创 2020-10-27 08:20:46 · 739 阅读 · 0 评论 -
ManyToMany如何向中间表中插入数据
业务场景我们有一张职位表,和一个用户表。职位表和用户之间的关系是多对多。所以在职位表的模型类我们采用的是ManyToMany类型,现在我们业务需要用户点击浏览职位的时候,点击收藏。需要在中间表中记录这职位与用户之间的关系,但是不要创建职位。模型类如图:视图定义:# 收藏职位----反序列化更新class CollecteRecruitView(ModelViewSet): queryset = Recruit.objects.all() serializer_class = Re原创 2020-10-14 14:43:53 · 1342 阅读 · 3 评论 -
HTTP状态码----精简记忆
一:状态码分类:状态码状态描述简单记忆1开头等待客户端继续请求等待2开头收到请求,处理成功成功3开头重定向重定向4开头客户端错误客户端5开头服务器错误服务器二:最常用的状态码:状态码状态描述100客户端继续请求101切换协议200成功301永久重定向302临时重定向400客户端语法错误401身份认证失败403不允许请求(跨域问题)404找不到原创 2020-10-09 16:06:41 · 310 阅读 · 0 评论 -
django的导包问题
错误信息:RuntimeError: Model class oauth.models.OAuthQQUser doesn’t declare an explicit app_label and isn’t in an application in INSTALLED_APPS.1:django的导包问题:错误大体意思是找不到我的models.OAuthQQUser,所以我向上点击进入导包的地方:这是我发现是以apps为导包路径进行导包的。检查自己的配置文件是不是将apps设置成导包路径:发原创 2020-09-18 17:32:40 · 1262 阅读 · 0 评论 -
django---10---csrf防护
1:模拟正常情况用户的登录:分析:当用户点击登录按钮的时候,会将自己的用户名和密码等信息发送给服务器,服务器判断,是不是post请求,如果是提取request中的username,password.然后服务器查询数据库是否存在这个用户名和密码。如果查询成功,会给在response中设置cookie,返回给浏览器。此时浏览器就存在了本次网页访问的cookie。2:接下来用户进行转账操作:此时用户点击转账,这次请求携带者上次服务器返回的cookie值,浏览器拿到这次的请求后,首先使用COOKIES的g原创 2020-08-29 21:27:57 · 425 阅读 · 1 评论 -
django---08---查询集QuerySet与模板templates的基本使用
一:查询集:1:概念:从数据库中获取的对象集合2:哪些方法返回查询集??all():返回所有数据。filter():返回满足条件的数据。exclude():返回满足条件之外的数据。order_by():对结果进行排序。3:查询集的两大特性:特性一:惰性:解析:创建查询集不会访问数据库,直到调用数据时,才会访问数据库案例:qs = BookInfo.objects.all(),这句话不会查询数据库,而是真正打印,才会连接数据库进行查询。特性二:缓存:使用同一个查询集,第一次使用时会发原创 2020-08-28 20:21:48 · 875 阅读 · 0 评论 -
django---07---数据库增删改查
一:shell工具的使用:1:进入shell的命令:python manage.py shell2:导入两个模型类:from bookinfo.models import BookInfo , HeroInfo二:数据库增加数据:方法一:使用模型类对象注意:在没有执行save方法之前,都没有访问数据库。(python_django) ubuntu@python:~/demo$ python manage.py shellPython 3.6.9 (default, Jul 17 202原创 2020-08-28 19:30:31 · 388 阅读 · 0 评论 -
django---09---Cookie与Session
一:Cookie:1:cookie的作用:用Cookie机制记住用户的登录状态,实际上是一小段存储在用户浏览器中的文本信息。2:cookie的工作机制:2.1:客户端向服务器发起请求,如果服务器需要记录该用户状态,就通过响应向客户端浏览器颁发一个Cookie。 2.2:客户端浏览器会把Cookie保存起来 2.3:当浏览器再次请求该网站时,浏览器把请求的网址连同该Cookie一同提交给服务器。 2.4:服务器检查该Cookie,以此来辨认用户状态。3:cookie的特点:Cookie,以键原创 2020-08-29 20:18:15 · 302 阅读 · 0 评论 -
django---06---模型类迁移建表
一:数据库的准备操作:1:创建数据库:mysql -uroot -pmysqlcreate database django_demo default charset=utf8;2:配置数据库:修改setting:DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'HOST': '192.168.103.240', # 数据库主机 'PORT': 3306,原创 2020-08-27 22:44:55 · 455 阅读 · 0 评论 -
django---05---响应和中间件
一:响应:1:常见的响应:HttpResponse():响应多种数据类型JsonResponse():响应JSONredirect():重定向render():渲染并响应HTML模板2:HttpResponse():格式:response = HttpResponse(content=响应体, content_type=响应体数据类型,默认为text/html, status=状态码,默认为200)Django提供了一系列HttpResponse的子类,可以快速设置状态码HttpRespo原创 2020-08-27 20:44:48 · 520 阅读 · 0 评论 -
django---04---HTTPrequest
一:前端传输参数的4种方式:1:查询字符串的方式:http://www.meiduo.site/list/115/1/?sort=price 中的?sort=price2:请求体数据:例如:表单,json3:url路径的部分:http://www.meiduo.site/detail/2/中的/2/4:请求头数据:以键值对的方式存储。二:提取查询字符串数据获取请求路径中的查询字符串参数,形如:?k1=v1&k2=v2可以通过request.GET属性获取,并返回Query原创 2020-08-27 19:27:13 · 378 阅读 · 0 评论 -
django---03---函数视图和类视图和路由
一:函数视图:二:类视图:原创 2020-08-25 17:31:49 · 498 阅读 · 0 评论 -
django---02---工程搭建和配置和子应用
一:创建工程1:创建工程:(python39_django) ubuntu@python:~$ cd Desktop/(python39_django) ubuntu@python:~/Desktop$ django-admin startproject demo(python39_django) ubuntu@python:~/Desktop$ ls -a. pycharm.desktop stock_db.sql..原创 2020-08-25 13:38:07 · 338 阅读 · 0 评论 -
Django---01---创建与使用虚拟环境
一:创建与使用虚拟环境:1:mkvirtualenv -p python3 虚拟环境名称ubuntu@python:~$ mkvirtualenv -p python3 py3_djangoAlready using interpreter /usr/bin/python3Using base prefix '/usr'New python executable in /home/ubuntu/.virtualenvs/py3_django/bin/python3Also creating ex原创 2020-08-25 10:30:11 · 348 阅读 · 0 评论 -
MVC框架与MVT框架介绍
一:MVC框架分析:1:M :model :模型 :和数据库进行交互。2:V : View 视图 : 产生html页面3:C :Controller ,控制器 :接收请求,进行处理,与M和V 进行交互,返回应答。二:MVC分析注册页面:1:当点击注册时,控制器接收请求,并且将用户名和密码等信息传递给M。2: M将用户名和密码保存进入数据库,数据库又返回给M保存的结果。3:M将结果返回给控制器,控制器将结果传递给视图。4:视图构造html页面,并且返回给控制器。5:控制器将html原创 2020-08-23 15:45:55 · 489 阅读 · 0 评论 -
django---时区问题(USE_TZ)
目录一: Django出现的时间问题:二:Django如何开启时区支持?三: 了解django的配置文件:四:区分两类datetime对象验证:时区关闭时:django使用的timezone。验证:时区开启时:django使用的timezone。一: Django出现的时间问题:问题描述:不同时区的人所在的时间是不同的,如果都采用当地时间,那么导致数据库存储的时间,并不是同一时刻的时间。但如果都采用0时区时间,那么不在0时区的用户就会看到错误的时间,怎么做呢?解决方案: 在代码和数据库中都采用UTC原创 2020-10-28 09:57:22 · 7699 阅读 · 1 评论 -
01---FastDFS实现图片的上传和下载
一: 环境的安装:1: Docker工具的安装:作用: 将镜像运行成容器的工具。cd docker源码目录sudo apt-key add gpgsudo dpkg -i docker-ce_17.03.2~ce-0~ubuntu-xenial_amd64.deb# 配置 docker 指令拥有sudo的权限--以后可以不写sudo-注意:修改完毕重启虚拟机sudo usermod -a -G docker $USER2: 使用docker工具恢复含有Tracker和Storage的镜像原创 2020-10-14 17:49:52 · 953 阅读 · 0 评论 -
django ---TimedJSONWebSignatureSerializer加密解密的分析使用
通过测试发现,对于TimedJSONWebSignatureSerializer的加密算法会将字典类型加密,加密后的格式是字节类型。但是对于他的解密算法确实,能够将字符串或者字节类型的加密数据,都解密成字典类型。from itsdangerous import TimedJSONWebSignatureSerializer as Serializerfrom django.conf import settings# 生成一个序列化对象(加密秘钥,加密时间5秒)serializer = Seria原创 2020-10-02 16:39:47 · 1334 阅读 · 0 评论 -
obtain_jwt_token的源码追踪分析
一:代码追踪分析:1:首先在路由位置开始追踪:re_path(r'^authorizations/$', obtain_jwt_token),2:第一层追踪:找到ObtainJSONWebToken3:第二层追踪:父类是JSONWebTokenAPIView,序列化器是JSONWebTokenSerializer。4:代码追踪上层,不追踪序列化器。5:继续向下追踪开看看django自己定义的返回格式是怎样的呢??发现追踪到配置文件指定的类了。我们导包继续追踪:在任意位置导包:按住ct原创 2020-09-28 17:05:35 · 625 阅读 · 1 评论 -
JWT身份认证
一:后台项目的准备工作:<一>: 项目的安装环境配置1:将前端工程导入ubuntu中,然后进入目录:cd meiduo_mall_admin2:安装依赖包npmnpm install3:将目录拖入原来的商城目录中,再进入meiduo_mall_admin目录中。4:使用命令运行后台项目:npm run dev或者cd dist/python3 -m http.server 8081<二>: django项目的配置:1:创建meiduo_admin应用原创 2020-09-26 13:24:51 · 452 阅读 · 0 评论 -
Django商城前台项目
目录1: 项目初始化1.1: 虚拟环境命令:1.2: Django项目的创建1.3: manage.py 中指定运行的配置文件地址:1.4:BASE_DIR问题:1.5: 指定模板文件夹的位置:1.6:Mysql数据库的配置1.7: 配置Redis1.8: 配置日志:1.9:主机域名映射和设置django白名单:1.10: django创建子应用:2:Django RESTful 设计风格2.1:HTTP接口/Web接口/网络API2.2:Django Restful设计风格:3:用户模型类的设计3.1:原创 2020-12-30 15:22:38 · 1728 阅读 · 0 评论 -
实训总结---爱家租房---django
一:七牛云的使用:1:安装七牛云:pip install qiniu -i https://pypi.tuna.tsinghua.edu.cn/simple2:初始化:AccessKey和SecretKey签名的授权:注:AK与SK虚假1:AK: WzrwnBQ6hLKzA3H3jsLt66VwFru-KAZ91AGcg9ao392: SK : SlnL8kEgvatZao5dhB88nLy-PAIkdd2GeaPJy7JB1-3: 七牛云空间名字: homepicture3:原创 2020-09-15 15:16:10 · 987 阅读 · 2 评论