电商网站的建设与运营开公司注册空头公司做网站

diannao/2026/1/17 4:42:35/文章来源:
电商网站的建设与运营,开公司注册空头公司做网站,怎样做好营销推广,虚拟机怎么做多个网站前言 Django自带了一个名为FileField的字段#xff0c;用于处理文件上传。然而#xff0c;有时我们需要更多的控制权#xff0c;例如定义文件的存储路径、文件名以及文件类型。在本篇文章中#xff0c;我们将探讨如何自定义Django附件存储模型。 创建attachment应用 pyt…前言 Django自带了一个名为FileField的字段用于处理文件上传。然而有时我们需要更多的控制权例如定义文件的存储路径、文件名以及文件类型。在本篇文章中我们将探讨如何自定义Django附件存储模型。 创建attachment应用 python manage.py startapp attachment然后在项目的settings.py文件中将应用注册到INSTALLED_APPS列表中如下所示 INSTALLED_APPS [django.contrib.admin,django.contrib.auth,django.contrib.contenttypes,django.contrib.sessions,django.contrib.messages,django.contrib.staticfiles,rest_framework,drf_yasg2,django_filters,account.apps.AccountConfig,oauth,attachment ]创建模型 定义Attachment from django.db import models# Create your models here. from rest_framework.reverse import reversefrom CodeVoyager.mixins import BaseModelMixin import uuidclass BlobField(models.Field):description Blobdef db_type(self, connection):return mediumblobclass Attachment(BaseModelMixin):file_id models.UUIDField(auto_createdTrue, defaultuuid.uuid4, editableFalse)file_name models.CharField(文件名, max_length200, uniqueTrue)mime_type models.CharField(MIME类型, max_length100)file_size models.PositiveIntegerField(文件长度)blob BlobField(文件内容)class Meta:verbose_name 附件verbose_name_plural verbose_namedef get_url(self, request):return reverse(attachment:download, requestrequest, kwargs{attachment_id: self.file_id}) 字段名称类型用途file_idUUIDField存储文件的唯一标识符file_nameCharField存储文件的名称即原始文件名mime_typeCharField存储文件的MIME类型file_sizePositiveIntegerField存储文件的大小以字节为单位blob自定义 BlobField存储文件的二进制内容即文件的实际数据 将更改应用到数据库 python manage.py makemigrations python manage.py migrate自定义Django存储 定义存储类 #!/usr/bin/python # -*- coding: utf-8 -*-from django.core.files.base import ContentFile, File from django.core.files.storage import Storage from django.utils.deconstruct import deconstructibledeconstructible class AttachmentStorage(Storage):附件存储def __init__(self, modelNone):from .models import Attachmentself.model Attachmentdef _open(self, file_id, moderb):instance self.model.objects.get(file_idfile_id)file ContentFile(instance.blob)file.filename instance.file_namefile.mimetype instance.mime_typereturn filedef _save(self, name, content: File):blob content.read()mime_type getattr(content, content_type, text/plain)self.model.objects.create(file_namename,blobblob,file_sizecontent.size,mime_typemime_type)return namedef exists(self, name):return self.model.objects.filter(file_namename).exists()attachment_storage AttachmentStorage() 方法名称参数返回值用途_openfile_id, moderbContentFile打开文件以供读取根据给定的file_id从Attachment模型中获取文件记录并返回ContentFile对象。_savename, content: File文件名保存文件将文件名和文件内容作为参数创建Attachment模型记录并将文件信息保存到数据库。existsname布尔值 (True 或 False)检查文件是否存在根据给定的文件名查询Attachment模型返回True如果文件存在否则返回False。 这些方法共同组成了AttachmentStorage类用于处理附件文件的存储和访问。_open 方法用于读取文件_save 方法用于保存文件而exists 方法用于检查文件是否存在。请注意初始化方法__init__接受一个model参数。 定义视图 上传视图 class AttachmentUploadView(APIView):permission_classes (permissions.IsAdminUser,)def post(self, request, version):try:file request.FILES[file]except MultiValueDictKeyError:raise ValidationError(参数错误)name attachment_storage.save(file.name, file)attachment get_object_or_404(Attachment, file_namename)return JsonResponse({download_url: attachment.get_url(request)}, statusstatus.HTTP_201_CREATED)作用处理附件的上传操作。功能当接收到POST请求时该视图尝试从请求中获取名为 ‘file’ 的文件然后使用自定义的存储后端 attachment_storage 来保存文件。接着它在数据库中查找与文件名匹配的附件记录并返回包含下载链接的 JSON 响应。这个视图的主要目的是允许用户上传附件并提供上传后的附件的下载链接。 下载视图 class AttachmentDownloadView(APIView):permission_classes (permissions.IsAuthenticated,)def get(self, request, version, attachment_idNone):attachment attachment_storage.open(attachment_id)response HttpResponse(attachment, content_typeattachment.mimetype)response[Content-Disposition] attachment;filename{name}.format(nameattachment.filename).encode(utf-8)return response作用处理附件的下载操作。功能当接收到GET请求时该视图使用传递的 attachment_id 参数来打开相应的附件。然后它创建一个包含附件内容的 HTTP 响应对象设置响应的内容类型为附件的 MIME 类型并设置响应头 Content-Disposition指定附件的文件名。最后它返回包含附件内容的 HTTP 响应。这个视图的主要目的是允许用户通过提供附件的唯一标识符来下载附件。 Content-Disposition 是一个HTTP响应头它用于指示浏览器如何处理接收到的文件。具体来说Content-Disposition 头的值告诉浏览器应该如何处理响应的内容通常用于文件下载操作。 注册视图 #!/usr/bin/python # -*- coding: utf-8 -*- from django.urls import re_path, pathfrom .views import AttachmentUploadView, AttachmentDownloadViewapp_name attachmenturlpatterns [re_path(rupload, AttachmentUploadView.as_view(), nameupload),path(rdownload/uuid:attachment_id, AttachmentDownloadView.as_view(), namedownload), ]使用swagger测试接口 上传 下载 结语 在开发Web应用程序时文件上传和下载是常见的功能之一但同时也需要特别关注安全性。通过合理的安全性配置你可以保护应用程序和用户的数据免受潜在的威胁。在实际的项目中我们可以增加一些重要的安全性措施包括文件类型验证、文件大小限制、CSRF保护、存储路径安全性和其他关键措施以确保文件上传和下载功能的安全性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/91197.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网站开发需要如何压缩代码临桂住房和城乡建设局网站

简介 这篇文章主要描述如何通过主脚本去调用其他脚本中的方法,调用的过程中可能出现哪些坑,如何避免。 目录 1. 主脚本调用其他脚本的方法 1.1. bash方法 1.2. source方法 2. 避坑技巧 2.1. 路径配置无效 2.2. source变量冲突 3. 总结 1. 主脚本调…

做关键字要改网站那些知名网站是外包做的

Linux read命令介绍 read命令是处理从键盘或其它输入设备读入字符的一个简单命令。常见用法就是在shell脚本中用来读取用户的输入。除此之外,也可以从文件中读取内容或处理由其它命令输出的内容。 Linux read命令适用的Linux版本 read命令在所有主流的Linux发行版…

做网站优化就是发文章吗网站目录结构

人工智能的未来发展前景怎么样?人工智能的未来发展前景非常广阔,有以下几个方面的发展趋势和前景: 1、人工智能的未来发展前景-应用领域扩展:人工智能将在各个领域得到广泛应用,包括医疗保健、金融、交通、制造业、农业…

网站的更新频率企业大型网站建设要多少钱

认识webpack 面向过程开发的不便引入外部js执行顺序面向对象开发 加载多个文件耗时更多 增加了http请求 引入过多js变量来源不明 优化 使用前先import 但使用import语法需要借助工具webpack翻译为浏览器可以解析的语法安装node自动携带npmwebpack若没有全局安装 需要使用npx…

黑色企业网站网站里的副栏目是什么

想要了解老字号申请的可以看过来!合肥各区县中华老字号、“安徽老字号”“合肥老字号”认定奖励补贴和申报条件材料指南如下,蜀山区、包河区、庐阳区、瑶海区、政务区、经济技术开发区、高新区、滨湖新区、新站区、长丰县、肥东县、肥西县各地需要申报的…

注册网站要语音验证码的有哪些wordpress 页面空白页

前言 分页查询在日常开发中无法避免,但每次sql编写时,mybatis 中使用limit,oracle中使用rownum分页,业务场景少的情况下,可以接受.但是随着业务增加每次相同的功能做重复开发又不是那么方便,那么我们有什么方案去解决开发中出现的分页问题呢? 一、PageHelper 框架分页 首先我…

在linux上做网站搭建商标免费设计

今天boke112百科登录某个WordPress站点时,又出现“管理员邮件确认”的提示,要求确认此站点的管理员电子邮箱地址是否仍然正确。具体如下图所示: 如果点击“稍后提醒我”,那么管理员邮件验证页面就会在3天后重新显示。 说实话&…

注册公司网站源码更换网站备案

先上干货 github:https://github.com/flutter/flutter 官网:http://flutter.io/ 中文资源:https://flutter-io.cn/ 当然我也用其他敏捷式平台开发过APP,比如APICloud、uiapp,相比Flutter难度会小一些。 用户的需求 移动软件开发的困难 这…

网站被百度k是什么意思wordpress重定向次数过多310

Postman之页面简介 V9.31.0 一、顶部栏二、左部栏三、中部栏四、下部栏 一、顶部栏 (1)new选项框,生成新建请求、集合、环境等 (2)import选项框,可以导入文件、文件夹、链接、文本信息等 (3&…

网站建设简单案例深圳世茂前海中心

从0到1理解MySQL的事务和ACID特性 在开始之前,我们先来了解一下MySQL的事务是什么,以及ACID是什么。 事务是什么? 事务可以简单地理解为一组数据库操作的集合,它们一起被视为一个不可分割的工作单元。事务要么全部成功执行&…

哪些公司用.cc做网站hishop官网

目录 async 关键字await 关键字使用 async 和 await 解决回调地狱问题错误处理总结 在JavaScript中, async和 await是用于简化基于 Promise的异步编程的关键字。在ES2017(也称为ES8)中引入后,它们迅速成为管理异步代码的首选方…

做的网站怎么进入互联网wordpress 京东主题

机器学习–jupyter notebook的使用 Jupyter项目是一个非盈利的开源项目,源于2014年的ipython项目,因为它逐渐发展为支持跨所有编程语言的交互式数据科学和科学计算 Jupyter Notebook,原名IPython Notbook,是IPython的加强网页版…

网站引导页是什么意思私人网官网

1.目的 想搜索CAD文件中的数字或文字是否存在DWG文件中。 2.方法 方式1:菜单栏 编辑→查找 方式2:指令格式 图纸的左下侧→命令处,进行输入find→再按回车enter 3.结果

wap 网站 开发气象网站建设的自查报告

这几年随着我国《国家网络空间安全战略》《网络安全法》《网络安全等级保护2.0》等一系列政策/法规/标准的持续落地,网络安全行业地位、薪资随之水涨船高。 未来3-5年,是安全行业的黄金发展期,提前踏入行业,能享受行业发展红利。…

购物网站的设计思路网站建设多久可以建成

🔥博客主页: 小羊失眠啦. 🎥系列专栏:《C语言》 《数据结构》 《Linux》《Cpolar》 ❤️感谢大家点赞👍收藏⭐评论✍️ 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,…

运城个人网站建设网站建设订单模板

不知道为什么有这个限制,如果放在设置数据源之前,在显示的时候就会提示这个参数的值未设置,要重新手动设置。 转载于:https://www.cnblogs.com/strinkbug/archive/2006/10/13/528243.html

百度 网站 移动端抖音头像的网站制作教程

Ubuntu22.04是通过VirtualBox的虚机安装的,最近升级了Ubuntu22.04后,每次启动都非常的慢 $ systemd-analyze blame 5min 2.287s plymouth-quit-wait.service 5min 18ms vboxadd.service 可以看到是这两个服务启动的非常耗时,各用了5分钟多。 …

做乐高肖像的网站正规手机网站建设平台

目录 1、进程的虚拟内存分区与小于0x10000的小地址内存区 1.1、进程的虚拟内存分区 1.2、小于0x10000的小地址内存区 2、保存线程上下文的CONTEXT结构体 3、从汇编代码角度去理解多线程运行过程的典型实例 4、调用TerminateThread强制结束线程会导致线程中的资源没有释放…

php做网站项目的流程浙江省工程建设协会网站

试卷代号:1070 组织行为学 试题 2021年7月 注意事项 一、将你的学号、姓名及分校(工作站)名称填写在答题纸的规定栏内。考试结束后,把试卷和答题纸放在桌上。试卷和答题纸均不得带出考场。监考人收完考卷和答题纸后才可离开考场。…

网站外链推广平台绍兴百度seo排名

前言 在.NET应用开发中数据集的交互式显示是一个非常常见的功能,如需要创建折线图、柱状图、饼图、散点图等不同类型的图表将数据呈现出来,帮助人们更好地理解数据、发现规律,并支持决策和沟通。本文我们将一起来学习一下如何使用ScottPlot库…