当前位置: 首页 > news >正文

承德市建设局网站电话网络营销推广服务商

承德市建设局网站电话,网络营销推广服务商,如何快速增加网站收录,网站主动服务方案上传文件功能 上传文件功能主要针对需要测试上传文件的接口。原理是#xff0c;把要测试上传的文件先上传到测试平台#xff0c;然后把路径写入 用例中#xff0c;后台真正测试时再将其进行上传。 一、上传文件模型 在testplans/models.py 模块中编写如下模型#xff1a;…上传文件功能 上传文件功能主要针对需要测试上传文件的接口。原理是把要测试上传的文件先上传到测试平台然后把路径写入 用例中后台真正测试时再将其进行上传。 一、上传文件模型 在testplans/models.py 模块中编写如下模型 class UploadFile(models.Model):文件上传file models.FileField(help_text文件, verbose_name文件)info models.JSONField(help_text数据, verbose_name数据, defaultlist,blankTrue)def str (self):return self.file.nameclass Meta:db_table upload_file verbose_name 文 件 上 传 verbose_name_plural verbose_name django框架中上传文件可以使用FileField 字段它保存的是上传文件的路径。 二、文件存储设置 默认情况下文件上传后保存在MEDIA_ROOT 配置下的路径中。在配置文件中添加如下配置 MEDIA_ROOT BASE_DIR / upload_files 然后在项目根目录创建目录upload_files 。 三、上传文件接口设计 1文件上传 接口名称 /upload/ 请求方式 POST 参数格式 form表单 请求参数 参数 变量名 类型 说明 是否必传 文件 file 文件 上传文件 是 请求示例 form格式参数 ------WebKitFormBoundaryuB0zvJWw5yrFtxuU Content-Disposition: form-data; namefile; filenamehahaha.sql Content-Type: application/octet-stream ------WebKitFormBoundaryuB0zvJWw5yrFtxuU-- 返回示例 响应状态码201 响应数据 {id:7,info: [hahaha.sql,D:\\project\\backend\\upload_files\\hahaha.sql,application/octet-stream] } 2文件删除 接口名称 /upload/pk/ 请求方式 DELETE 参数格式 路径参数 请求参数 无 返回示例 响应状态码204 响应数据无 3查看文件列表 接口名称 /upload/ 请求方式 GET 参数格式 无 请求参数 参数 变量名 类型 说明 是否必传 项目id project 整数 项目id 否 返回示例 响应状态码200 响应数据 [{id: 7,info: [hahaha.sql, D:\\project\\backend\\upload_files\\hahaha.sql, application/octet-stream]},{id: 6,info: [hahaha.sql, D:\\project\\backend\\upload_files\\hahaha.sql, application/octet-stream]},{id: 5,info: [hahaha.sql, D:\\project\\backend\\upload_files\\hahaha.sql, application/octet-stream]}, ] 4查看文件 接口名称 /upload/pk/ 请求方式 GET 参数格式 路径参数 请求参数 无 返回示例 响应状态码200 响应数据 {id: 7,info: [hahaha.sql, D:\\project\\backend\\upload_files\\hahaha.sql, application/octet-stream ] } 四、后端代码 1序列化器 class UploadFileSerializer(serializers.ModelSerializer):文件上传序列化器class Meta:model UploadFilefields __all__extra_kwargs {file: {write_only: True}, info: {read_only: True}} 2视图 ① 限制上传文件的大小、限制重复上传 复写 perform_create获取文件的大小size和名字name。 前端会把我们这个文件传过来传过来之后我们后端通过self.request.data[file] 就能拿到这个文件然后下面有个属性size就能拿到他的大小name拿到他的文件名字。 我们打个断点看下到底是咋实现的。 http://127.0.0.1:8000/upload/   上传文件 可以看到他是一个在内存里的uploadfile 一个上传文件大小是57505可以看到他的name和size、content_type属性等等。  判断文件大小还要判断文件名是否存在settings.MEDIA_ROOT  这个就是配置文件中的。 因为上传文件的时候不需要输入参数info因为你上传的时候还不知道参数info -文件具体参数是啥。所以在序列化器的时候把info设置为read_only True。 ② 删除本地保存的文件 先看下父类的 perform_destroy 是咋实现的。 调用instance.delete()之前先去删除本地保存的文件 具体代码附上 class UploadFileViewSet(ModelViewSet):文件上传视图queryset UploadFile.objects.all()serializer_class UploadFileSerializerpermission_classes [IsAuthenticated]def perform_create(self, serializer):# 限制文件大小文件重复# 生成info数据size self.request.data[file].sizename self.request.data[file].nameif size 1024 * 300:raise ValidationError(detail上传的文件大小不可超过300KB)if os.path.isfile(settings.MEDIA_ROOT / name):raise ValidationError(detailf文件【{name}】已存在)file_type self.request.data[file].content_typefile_path str(settings.MEDIA_ROOT / name)info [name, file_path, file_type]serializer.save(infoinfo)def perform_destroy(self, instance):文件删除# 删除本地保存的文件os.remove(instance.file.path)instance.delete()3路由 from rest_framework.routers import DefaultRouterfrom . import viewsrouter DefaultRouter() router.register(upload, views.UploadFileViewSet)urlpatterns router.urls
http://www.yayakq.cn/news/6201/

相关文章:

  • 文山知名网站建设报价网店库存管理软件
  • 淘宝内部领优惠券的网站怎么建设2017网站开发主流工具
  • 佛山技术支持 骏域网站建设运营网站费用
  • 什么叫网站权重网站建设播放vr视频
  • 如何在外管局网站做延期收汇网站安全性怎么做
  • 地址 上海石门二路 网站建设专业做网站 上海
  • 百度街景地图网页版做网站优化步骤
  • seo管理系统创作网站seo推广优化教程
  • 怎样修改网站标题当当网网站建设建议
  • 常州网站推广多少钱全国知名网站建设公司
  • 免费黄页营销网站邯郸做wap网站
  • 宜昌十堰网站建设哪家好基于wordpress建小程序JWT
  • wordpress网站域名服务器传奇网页游戏排行榜前十
  • 网站浏览历史能恢复吗怎么设置的图文制作app哪个好
  • 建设网站的体会我想找阿里巴巴做网站推广
  • wordpress内部服务器成都网站排名生客seo
  • 邹城网站建设网页设计模板素材图书馆
  • 宁波江北建设局网站网站建设 域名 空间
  • 台州建设信息港网站外贸网站开发营销
  • 营销网站定制福建外贸网站建设
  • 做个静态网站多少钱wordpress最大上传2g
  • 个人网站审批网站首页被k 内页还有
  • 网站联盟是什么意思汕头seo外包服务
  • 静态网站建设流程怎么写图片制作软件下载
  • 域名空间网站怎么做网页设计手机端
  • 为什么手机进网站乱码网站建设做的好的公司
  • 网站怎么显示被k电商 网站 建设
  • 服务器系统搭建网站源码电商平台活动策划方案
  • 长春高铁站wordpress 3.9中文版
  • 提供服务好的网站制作什么网站做免单衣服