![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Django
graceljh
这个作者很懒,什么都没留下…
展开
-
django运行时报错ModuleNotFoundError: No module named ‘testsuitesconfigures‘
django运行时报错ModuleNotFoundError: No module named 'testsuitesconfigures’查了一些资料,发现和我的都不符合。看到报错的文件和具体的行号,也都进去看了下源码。没发现有什么问题,然后又仔细检查了了自己写的程序,也没有异常。看到这个模块名有点奇怪,我从来没取过这个名字,为何会出现呢?于是在配置文件中查看,突然发现,注册APP时,中间少写了一个逗号,导致系统把这两个识别成了一个。然后在程序中找不到对应的模块名,所以才会报错。改完之后,再次运行,已经原创 2022-05-18 19:40:23 · 562 阅读 · 0 评论 -
DRF框架之认证、授权和登录
一、认证1.Browsable API页面认证与JWT认证比较1.Browsable API页面认证指定permission_classes添加rest_framework.urls路由2.Json Web Token认证最常用的认证方式Session认证Token认证Session认证保存在服务端,增加服务器开销分布式架构中,难以维持Session会话同步CSRF攻击风险Token认证保存在客户端跨语言、跨平台拓展性强鉴权性能高JWT由三部分组成header、pla原创 2020-12-10 18:23:43 · 1563 阅读 · 1 评论 -
DRF框架serializer之ModelSerializer
一、基本语法在没有使用ModelSerializer序列化器类之前,我们定义的序列化器类都需要添加对应模型类字段的很多字段,如果添加的字段特别多,那么势必会影响开发效率和代码的可读性,因此会选择一种更为简洁的序列化器类来帮我们优化框架代码,简化序列化器类中字段的创建常规序列化器类示例:复制代码from rest_framework import serializersfrom rest_framework import validatorsfrom .models import Projects原创 2020-12-10 18:17:08 · 391 阅读 · 1 评论 -
DRF框架之serializer反序列化
反序列化最重要的就是数据校验,包括字段类型校验、长度、是否唯一、是否只输入、是否只输出、是否允许为空等等,也可以做自定义的校验,总之校验功能及其强大一、序列化字段类型及参数关于字段类型,可以查看源码复制代码This helps keep the separation between model fields, form fields, andserializer fields more explicit.from rest_framework.fields import ( # NOQA #原创 2020-12-10 18:14:35 · 438 阅读 · 0 评论 -
DRF框架之serializer序列化
一、序列化与反序列化1.序列化概念:将程序中的一个数据结构类型转化为其它格式(字典、json、XML等)。例如:将django中的模型类对象转换为json字符串,这个转换过程称之为序列化序列化时机:当需要给前端响应模型数据时,需要将模型数据序列化成前端需要的格式2.反序列化概念:将其它格式 (字典、json、XML等)转换为程序中的数据,例如:将json字符串转换为django中的模型类对象,这个过程称之为反序列化反序列化时机:当需要将用户发送的数据存储到数据库之前,需要使用反序列化3.开发R原创 2020-12-10 18:12:43 · 153 阅读 · 0 评论 -
Django之Django REST Framework框架安装
一、简介它是在Django基础之上,进行了二次开发主要用于构建Restful API简称为DRF框架或者REST Framework框架二、特性提供了强大的Serializer序列化器,可以高效地进行序列化与反序列化操作提供了极为丰富的类视图、Mixin扩展类、Viewset视图集提供了直观的Web API界面多种身份认证和权限认证强大的排序、过滤、分页、搜索、限流等功能可扩展性强,插件丰富三、安装&配置1.安装直接使用pip安装即可pip install -i http原创 2020-12-10 18:10:45 · 206 阅读 · 1 评论 -
MVT模型<->前后端不分离&前后端分离&模板引擎
一、前后端不分离与前后端分离的比较前后端不分离特点:后端需控制数据的展示前后端不分家,耦合严重返回的是HTML页面,适应性、拓展性差只能用于浏览器,其它终端不匹配前后端分离的特点:当前主流后端只对数据进行处理,只提供数据前端效率、页面好不好看,全由前端负责,前后端完全独立解耦合前后端同时开发,缩小业务上线周期绝大多数情况下,前端发送json格式的参数,后端同样以json格式的数据返回适应性、拓展性好适合多终端运行同一套接口(PC、APP、小程序等)二、MVT模型 mvt模型原创 2020-12-10 18:03:34 · 1171 阅读 · 1 评论 -
Django类视图
假设有这样一种情况,前端页面请求的某个地址,即有get请求,也有post请求,或者还有别的一些请求,这种情况我们使用函数视图是怎么定义的呢?from django.http import HttpResponsedef index_page(request):if request.method == 'GET': return HttpResponse("<p>这是一个get请求</p>")elif request.method == 'POST': retu原创 2020-12-10 18:00:18 · 93 阅读 · 0 评论 -
Django子应用创建
一、作用进行复用将工程项目拆分为不同的子功能模块各功能模块间可以保持相对独立可以将模块代码整体复制过去二、创建步骤创建子项目推荐子应用名为小写复数形式,不要使用中文python manage.py startapp 子应用名 # python manage.py startapp projects注册在全局配置文件setting.py中的INSTALLED_APPS列表添加子应用:子应用名.apps.子应用名首字母大写Config创建子应用视图配置路由前端获取一个页面,其实就相当于原创 2020-12-10 17:59:01 · 137 阅读 · 2 评论 -
创建Django项目的两种方式
创建Django项目的两种方式这里都以录屏来展示!需要注意的是两种方式都要虚拟环境下进行部署,因此进入Terminal命令行模式时,要确认路径前是否带有“(venv)”的标识,带有该标识则环境正确一、以Django方式创建Django项目 具体步骤如下:新建一个项目,选择Django点开Project Interpreter,选择虚拟环境确认python解释器版本重命名Django项目名称点击创建,等待项目创建完成Terminal命令行模式下,键入命令行 python manage.py原创 2020-12-10 17:53:00 · 182 阅读 · 0 评论 -
UnorderedObjectListWarning: Pagination may yield inconsistent results with an unordered object_list
UnorderedObjectListWarning: Pagination may yield inconsistent results with an unordered object_list我使用的Django的DRF框架在对数据进行分页展示是出现的警告解决方法方法一:在需要进行查询的模型类中 增加ordering参数class Meta:ordering = [‘id’]...原创 2020-09-02 17:05:21 · 572 阅读 · 0 评论 -
Django外键(ForeignKey)操作时报错‘Projects‘ object has no attribute ‘interface_set‘
我定义了两个模型,一个是project模型,一个是interface模型django默认情况下每一个主表的对象都有一个是外键的属性,可以通过它查询到所有关于子表的信息,这个属性的名字就是子表的名称小写加上_set,具体到这个就是interface_set,默认返回的是QuerySet,在models.py使用Foreign定义外键的时候也可以传入一个参数related_name.之前的_set操作的效果是一样的,这两个方法是相同的,但是因为我在这两个地方同时定义了,而且名称不同,所以就造成了报错。.原创 2020-07-18 22:51:11 · 722 阅读 · 0 评论 -
Django报错—Migration interface is applied before its dep endency projects on database ‘default‘
python manage.py makemigrations interface执行后显示成功python manage.py migrate 执行后报错。解决办法是,删掉数据库中的所创建的表,django_migrations中和此表相关的记录。并删除app下的migrations文件夹,然后再执行:python manage.py makemigrations interfacepython manage.py migrate即可成功...原创 2020-07-15 16:03:45 · 351 阅读 · 0 评论