![](https://img-blog.csdnimg.cn/205d254c240f452db87f53963edd54b2.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Django
文章平均质量分 79
Django
覆水难收呀
这个作者很懒,什么都没留下…
展开
-
四十六、docker-compose部署
一个项目肯定包含多个容器,每个容器都手动单独部署肯定费时费力。docker-compose可以通过脚本来批量构建镜像和启动容器,快速的部署项目。使用docker-compose部署主要是编写docker-compose.yml脚本。原创 2023-04-11 16:27:01 · 1532 阅读 · 0 评论 -
四十五、docker之nginx手动部署前端项目
我们查看上述说的 conf文件中 location 里 root /usr/share/nginx/html # root是指文件的根目录。我们看到最下面一行include /etc/nginx/conf.d/*.conf ,所以我们再把此目录下的conf文件复制过来看下是啥意思。www.hhxpython.com/aaa.txt 返回/usr/share/nginx/html/aaa.txt。root /usr/share/nginx/html # root是指文件的根目录。原创 2023-04-09 00:57:43 · 1791 阅读 · 0 评论 -
四十四、docker手动部署后端
然后我们 docker exec -it ck13_django sh 进入这个容器,发现我们项目代码没有映射进来,所以我们只能停掉并且先删除ck13_django这个python容器。因为这里没有做端口映射,所以我外网访问不了,所以我们再去打开一个云服务器窗口,还是进入这个容器(等同于在同一个电脑里面)。我们看到celery_beat在不停的退出,我们在logs目录下查看下日志tail celery.log。所以我们需要再学一个库。下载后复制刚才的git地址去拉取项目,发现没有配公钥,还得配下公钥。原创 2023-04-07 20:36:56 · 439 阅读 · 0 评论 -
四十三、celery框架入门
Celery是使用python编写的分布式任务调度框架。原创 2023-03-30 23:36:49 · 612 阅读 · 0 评论 -
四十二、实战演练之接口自动化平台的测试步骤执行,测试场景执行,测试计划执行
其中,函数run_case 用来运行单条用例,_ get_env_config 函数用来获取需要运行的环境配置。原创 2023-03-24 18:11:47 · 242 阅读 · 0 评论 -
四十一、实战演练之接口自动化平台的测试计划接口设计
接口名称: /test_plans/请求方式: POST参数格式: JSON请求参数:参数变量名类型说明是否必传测试计划名称name字符串测试步骤id是项目idproject整数测试场景id是测试场景idscenejson执行顺序是请求示例:json格式参数返回示例响应状态码:201DELETE路径参数。原创 2023-03-24 15:49:30 · 207 阅读 · 0 评论 -
四十、整理嵌套序列化器的使用方法
下面提到的一和多 就是表之间的关系是一对多还是多对一的意思。第一个场景 是在一的一方去嵌套序列化器,所以source是用到多的一方的小写模型名+_set第二个场景 是在多的一方去嵌套序列化器,source直接引用相关联的模型所对应的字段。原创 2023-03-24 14:52:01 · 395 阅读 · 0 评论 -
三十九、实战演练之接口自动化平台的测试场景步骤接口设计
添加了一个action用来进行排序。原创 2023-03-23 18:01:24 · 321 阅读 · 0 评论 -
三十八、实战演练之接口自动化平台的测试场景接口设计
接口名称:/test_scenes/pk/接口名称:/test_scenes/pk/接口名称:/test_scenes/id/接口名称:/test_scenes/接口名称:/test_scenes/请求方式:PUT/PATCH。请求方式:DELETE。请求参数: 无返回示例。响应状态码: 201。响应状态码: 204。响应状态码: 200。响应状态码: 200。响应状态码: 200。原创 2023-03-23 17:54:11 · 194 阅读 · 1 评论 -
三十七、实战演练之接口自动化平台的文件上传
上传文件功能主要针对需要测试上传文件的接口。原理是,把要测试上传的文件先上传到测试平台,然后把路径写入 用例中,后台真正测试时再将其进行上传。django框架中上传文件可以使用FileField 字段,它保存的是上传文件的路径。默认情况下,文件上传后保存在MEDIA_ROOT 配置下的路径中。然后,在项目根目录创建目录upload_files。/upload/POSTform表单文件file文件上传文件是form格式参数DELETE路径参数无响应状态码:204 响应数据:无/upload/GET无。原创 2023-03-23 16:13:46 · 555 阅读 · 0 评论 -
三十六、实战演练之接口自动化平台的测试步骤管理接口设计
测试步骤详情中需要展示接口信息,所以单独创建一个序列化器用来序列化测试步骤详情。请求方式: POST。原创 2023-03-22 20:05:57 · 360 阅读 · 0 评论 -
三十五、DRF中的过滤、Django中的过滤后端
REST framework 的通用列表视图的默认行为是返回模型管理器的整个查询集。通常,您希望 API 限制查询集返回的项目。过滤子类化的任何视图的查询集的最简单方法是覆盖GenericAPIView.get_queryset() 方法。覆盖此方法允许您以多种不同方式自定义视图返回的查询集。您可能希望过滤查询集以确保只返回与当前已通过身份验证的发出请求的用户相关的结果。您可以通过request.user 的值进行过滤来实现。另一种过滤方式可能涉及基于URL 的某些部分限制查询集。原创 2023-03-21 16:40:53 · 703 阅读 · 0 评论 -
三十四、实战演练之接口自动化平台的项目环境管理接口设计
请求示例:/test_envs/?接口名称:/test_envs/环境id/接口名称:/test_envs/环境id/接口名称:/test_envs/环境id/接口名称:/test_envs/接口名称:/test_envs/请求方式:PUT/PATCH。debug模式全局变量。请求方式:DELETE。debug模式全局变量。响应状态码: 201。响应状态码: 204。响应状态码: 200。参数格式:url参数。响应状态码: 200。响应状态码: 200。原创 2023-03-21 15:56:29 · 245 阅读 · 0 评论 -
三十三、实战演练之接口自动化平台的项目接口管理接口设计
POSTJSON接口名称name字符串项目接口名称是接口地址url字符串接口地址是请求方法method字符串请求方法是接口类型type字符串接口类型是所属项目project整数所属项目id是json格式参数DELETE路径参数无响应状态码:204 响应数据:无PUT/PATCHJSON接口名称name字符串项目接口名称put请求必传接口地址url字符串接口地址put请求必传请求方法method字符串请求方法put请求必传接口类型。原创 2023-03-21 15:02:05 · 421 阅读 · 0 评论 -
三十二、实战演练之接口自动化平台的模型创建、项目管理接口设计
注意在配置文件中注册应用。原创 2023-03-20 21:37:01 · 431 阅读 · 0 评论 -
三十一、实战演练之用户注册接口设计
POSTJSON用户名username字符串用户名是密码password字符串密码是确认密码字符串确认密码是邮箱email字符串邮箱是手机号码mobile字符串手机号码是所有人可以访问。原创 2023-03-18 19:07:20 · 241 阅读 · 0 评论 -
三十、实战演练之用户登录接口设计、登录功能前后端联调
接口名称:/users/login/请求方式:POST参数格式:JSON请求参数:参数变量名类型说明是否必传用户名username字符串用户名是密码password字符串密码是请求示例:json格式参数返回示例:响应状态码: 200响应数据:2. token刷新接口设计接口名称:/users/token/refresh/请求方式:POST参数格式:JSON请求参数:参数变量名类型说明是否必传refresh_tokenrefresh字符串刷新token值是请求示例:json格式参数返原创 2023-03-18 16:09:30 · 1818 阅读 · 0 评论 -
二十九、实战演练之用户认证
身份验证是将传入请求与一组标识凭据(例如请求来自的用户或用于签名的令牌)相关联的机制。然后,和策略可以使用这些凭据来确定是否应该允许请求。原创 2023-03-18 11:00:50 · 661 阅读 · 0 评论 -
二十八、实战演练之定义用户类模型、迁移用户模型类
一旦一个模型里面的Meta里面abstract = True,那这个模型就是抽象模型。抽象模型有啥用呢?就是用来被继承。我们在迁移的时候,他不会把这个模型也去映射表。可以理解为就是一个模板,其他模型把他继承之后,就能共用里面的字段(比如AbstractUser里面的username、first_name、last_name、email等等)。其中 USERNAME_FIELD 就是指定到底是哪个字段作为django默认的凭证。REQUIRED_FIELDS指定的字段和你username是否一对一匹配的上。原创 2023-03-17 22:40:56 · 409 阅读 · 0 评论 -
二十七、实战演练之创建用户模块子应用
变量中的目录列表里查找。所以我们可以将项目下的apps 目录插入到sys.path 中,这样既可简化我们创建新应用时的操作,也可以优化导入效率。自动生成的应用配置中的name属性就是应用的名字,这在直接创建应用到项目根目录中时是不错的,但是现在我们 在应用的外面嵌套了一层,需要修改name的属性为导入应用的python格式的完整路径,所以修改。在INSTALLED_APPS 中添加users 应用的配置类的导入点分隔路径。如果没找到,解释器再从。注册方式同上,这样可以不用修改应用的配置类的name属性了。原创 2023-03-17 16:24:56 · 597 阅读 · 0 评论 -
二十六、实战演练之配置工程日志
django使用python原生的logging日志模块。link:python 日志模块的使用 - 测试派日志 软件开发中通过日志记录程序的运行情况是一个开发的好习惯,对于错误排查和系统运维都有很大帮助。Python标准库自带了强大的logging日志模块,在各种python模块中得到广泛应用。一、简单使用 1. 入门小案例 import logging logging.basicConfig(level=loggin。原创 2023-03-17 11:12:57 · 455 阅读 · 0 评论 -
二十五、实战演练之配置MYSQL数据库
数据存储服务采用。原创 2023-03-17 11:09:47 · 445 阅读 · 0 评论 -
二十四、实战演练之配置开发环境
准备工作:在配置环境之前,我们新建一个项目(新建项目在之前有讲过,大家可以去翻一哈),然后可以配置一个远程仓库(现在gitee上创建一个新的项目,然后本地拉取)。我们直接进入正题。项目的环境分为和。开发环境:用于编写和调试项目代码。生产环境:用于项目线上部署运行。原创 2023-03-17 11:00:12 · 71 阅读 · 0 评论 -
二十三、分页与限流
对于大量数据的传输需要进行分页操作。REST framework已经实现了分页api。Link注意只有在使用通用视图或视图集时,分页才会自动执行。如果你使用一个常规的APIView,你需要自己调用分页API来确保你返回一个分页的响应。原创 2023-03-16 11:51:48 · 406 阅读 · 0 评论 -
二十二、身份验证与权限
要实现自定义权限,请重写BasePermission并实现以下方法中的一个或两个:如果请求被授予访问权限,则该方法应返回True,否则返回False。注意:对象级的has_object_permission方法只有在视图级的has_permission检查已经通过的情况下才会被调用。如果测试失败,自定义权限将引发一个PermissionDenied异常。若要更改与异常关联的错误消息,请在自定义权限上直接实现message属性。原创 2023-03-15 20:32:02 · 753 阅读 · 0 评论 -
二十一、Django-restframework之序列化器补充
序列化器字段处理基元值和内部数据类型之间的转换。它们还处理输入值的验证,以及从它们的父对象检索和设置值。每个序列化器字段类构造函数至少接受这些参数。一些字段类还接受额外的,字段特定的参数,但以下应参数应该一直被接受:字段只读,默认值为。只读字段只会包含在序列化输出中,创建修改对象时不会包含该字段,即使输入了也会被忽略。字段只写,默认值为。和相反,序列化时不包含,创建修改对象时必须包含该字段。字段必须,默认值为True。必须字段在创建修改对象时必须包含,否则抛出异常。当设置为False时,在创建修改对象时可以原创 2023-03-11 17:17:19 · 857 阅读 · 0 评论 -
十九、Django-restframework之类视图、mixins、通用类视图(四)
Django-restframework之类视图、mixins、通用类视图原创 2023-03-09 21:58:12 · 202 阅读 · 0 评论 -
二十、Django-restframework之视图集和路由器
REST框架包含了一个处理视图集的抽象,它允许开发人员集中精力建模API的状态和交互,并根据通用约定自动处理URL构造。视图集类与视图类几乎相同,不同之处在于它们提供的是retrieve或update等操作,而不是get或put等方法。一个ViewSet类只在最后一刻被实例化为一组视图时,绑定的一组方法处理程序,通常是通过使用一个Router类来处理定义URL conf的繁琐操作。原创 2023-03-10 21:35:58 · 400 阅读 · 0 评论 -
十八、Django-restframework之请求和响应(三)
REST框架引入了一个扩展了常规的请求对象, 并提供更灵活的请求解析。请求对象的核心功能是属性,这与类似,但对于WebAPIs更有用。原创 2023-03-03 10:36:49 · 354 阅读 · 0 评论 -
十七、Django-restframework之序列化器(二)
在crm应用目录下创建"""学生序列化器"""id = serializers.IntegerField(label='学生id', read_only=True)name = serializers.CharField(label='姓名')sex = serializers.IntegerField(label='性别', default=1)原创 2023-03-02 17:44:44 · 364 阅读 · 0 评论 -
十六、Django-restframework之简介(一)
Django REST framework是构建RESTful风格的Web api的强大而灵活的工具包。它是在Django框架基础之上,进行了二次开发。简称为DRF框架或REST framework框架。原创 2023-03-02 14:47:09 · 509 阅读 · 0 评论 -
十五、Django-admin
django admin 的强大之处在于,可以通过简单的设置,可以定义管理页面的显示方式。('详细信息', {'fields': ['qq', 'phone', 'grade']}),('设置', {'fields': ['is_delete']})列表页属性:list_display:显示字段,可以点击列头进行排序list_filter:过滤字段,过滤框会出现在右侧search_fields:搜索字段,搜索框会出现在上侧list_per_page:分页,分页框会出现在下侧。原创 2023-02-27 16:06:12 · 478 阅读 · 2 评论 -
十四、项目实战二(CORS、同源策略、cookie跨域)
CORS是一个W3C标准,全称是"跨域资源共享"(cross-origin resource sharing)。它允许浏览器向跨源服务器,发出请求,从而克服了AJAX只能同源使用的限制。CORS需要浏览器和服务器同时支持。目前,所有浏览器都支持该功能。整个CORS通信过程,都是浏览器自动完成,不需要用户参与。对于前端开发者来说,CORS通信与同源的AJAX通信没有差别,代码完全一样。浏览器一旦发现AJAX请求跨源,就会自动添加一些附加的头信息,有时还会多出一次附加的请求,但用户不会有感觉。原创 2023-02-25 14:20:21 · 426 阅读 · 0 评论 -
十三、RESTful API
综上,我们总结一下什么是RESTful每个URI代表一种资源客户端和服务端之间,传递这种资源的某种表现形式客户端通过HTTP方法,对服务器资源进行操作,实现状态的变化。原创 2023-02-23 20:22:53 · 380 阅读 · 0 评论 -
十二、Django表单
在之前的案例中,每次我们需要提交表单数据的时候。我们都需要去手动编辑html表单,根据不同的字段,字段名,进行编码。做了很多重复的部分,所以django提供了一个专门用来处理表单的类,。通过它,我们不仅能够自动生成前端页面,也可以用来验证数据的合法性。我们通过改写添加修改学生的表单来学习它。原创 2023-02-21 20:19:06 · 545 阅读 · 0 评论 -
十一、项目实战一
以 前后端不分离的方式实现学生的增删改查操作。原创 2023-02-20 15:19:34 · 308 阅读 · 0 评论 -
十、数据库操作
一旦创建 数据模型后,Django 自动给予你一套数据库抽象 API,允许你创建(create),检索(retrieve),更新(update)和删除(delete)对象。我们使用这个命令而不是简单的使用python是因为manage.py会设置环境变量,这个变量会让 Django 根据项目配置文件来设置 Python 包的导入路径。queryset对象的query属性可以看到执行的sql,但是只能对queryset对象使用,所以insertupdate就不能使用。在日志等级debug=True。原创 2023-02-07 19:43:00 · 555 阅读 · 0 评论 -
九、ORM与模型
上图中的学生表和渠道表,一个学生会对应一个渠道,一个渠道对应多个学生,学生表中的一条数据和渠道表中的一条数据对应,渠道表中的一条数据与学生表中的多条数据对应,学生表和渠道表形成多对一的关系。在我们的案例中,编辑学生对象,或者编辑课程对象时都不需要彼此,而在查询时,"报名了某个课程的学生有哪些",这个需求会更多,所以把多对多的字段定义在课程表中。字段,用来记录报名时间。多对多字段的第一个参数是一个位置参数,既需要关联的模型,可以是模型本身,也可以是模型的字符串形式的导入路径(当引用后定义的模型时很有用)。原创 2023-02-06 19:31:41 · 332 阅读 · 0 评论 -
八、视图的定义
在django中,视图是一个可调用的对象,能够接受用户的请求并返回响应。在视图中通过模型操作数据库,通过模板构造返回数据。约定将视图放在名为views.py的文件里,这个文件放置在项目或者应用目录里。原创 2023-02-02 17:57:54 · 184 阅读 · 0 评论 -
七、请求和响应
web框架本质就是处理用户发起的请求,然后返回响应结果。请求,和响应就是框架中的数据流。原创 2023-01-31 16:49:17 · 255 阅读 · 0 评论