您当前的位置:首页 > IT编程 > python
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:Python Django搭建文件下载服务器的实现

51自学网 2021-10-30 22:41:19
  python
这篇教程Python Django搭建文件下载服务器的实现写得很实用,希望能帮到您。

环境

  • win10
  • Python:3.6.7
  • Django:2.2.7

运行效果

在这里插入图片描述

1、创建 Django 项目

# 创建Download项目django-admin startproject Download# 创建down_app apppython manage.py startapp down_app

在这里插入图片描述

在这里插入图片描述

2、修改配置文件:settings.py

Download/Download/settings.py

1.添加注册APP:down_app

在这里插入图片描述

2.设置模板文件路径:templates

在这里插入图片描述

3、编写视图函数:views.py

Download/down_app/views.py

import osfrom django.http import HttpResponsefrom django.http import StreamingHttpResponsedef image_down(request):    """    下载图片    """    img_name = request.GET.get("username") + ".png"  # 二维码图片名    base_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))  # 项目根目录    file_path = os.path.join(base_dir, 'antirisk/CodeGenerate/image/code', img_name)  # 二维码的绝对路径    if not os.path.isfile(file_path):  # 判断下载文件是否存在        return HttpResponse("Sorry but Not Found the File")    def file_iterator(file_path, chunk_size=512):        """        文件生成器,防止文件过大,导致内存溢出        :param file_path: 文件绝对路径        :param chunk_size: 块大小        :return: 生成器        """        with open(file_path, mode='rb') as f:            while True:                c = f.read(chunk_size)                if c:                    yield c                else:                    break    try:        # 设置响应头        # StreamingHttpResponse将文件内容进行流式传输,数据量大可以用这个方法        response = StreamingHttpResponse(file_iterator(file_path))        # 以流的形式下载文件,这样可以实现任意格式的文件下载        response['Content-Type'] = 'application/octet-stream'        # Content-Disposition就是当用户想把请求所得的内容存为一个文件的时候提供一个默认的文件名        response['Content-Disposition'] = f'attachment;filename="1.png"'  # 文件名不可设置为中文    except:        return HttpResponse("Sorry but Not Found the File")    return response

4、修改路由配置:urls.py

Download/Download/urls.py

from django.contrib import adminfrom django.urls import path, re_pathfrom down_app import viewsurlpatterns = [    path('admin/', admin.site.urls),    path('', views.index),    re_path('download/)', views.image_down, name="download"),]

5、创建并编写:index.html

Download/templates/index.html

<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <title>Title</title></head><body><a href="/download/" rel="external nofollow" >下载图片</a></body></html>

运行

# 运行项目python manage.py runserver

在这里插入图片描述

# 访问: http://127.0.0.1:8000/

在这里插入图片描述

到此这篇关于Python Django搭建文件下载服务器的实现的文章就介绍到这了,更多相关Django搭建文件下载服务器内容请搜索51zixue.net以前的文章或继续浏览下面的相关文章希望大家以后多多支持51zixue.net!


详解python的内存分配机制
Python中X[:,0]和X[:,1]的用法
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。