广告
返回顶部
首页 > 资讯 > 服务器 >Python Django搭建文件下载服务器的实现shili
  • 597
分享到

Python Django搭建文件下载服务器的实现shili

2023-06-15 00:06:57 597人浏览 薄情痞子
摘要

这篇文章主要介绍python Django搭建文件下载服务器的实现shili ,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!环境win10Python:3.6.7DjanGo:2.2.7运行效果1、创建 Django

这篇文章主要介绍python Django搭建文件下载服务器的实现shili ,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

环境

运行效果

Python Django搭建文件下载服务器的实现shili

1、创建 Django 项目

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

Python Django搭建文件下载服务器的实现shili

Python Django搭建文件下载服务器的实现shili

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

Download/Download/settings.py

添加注册APP:down_app

Python Django搭建文件下载服务器的实现shili

设置模板文件路径:templates

Python Django搭建文件下载服务器的实现shili

编写视图函数: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

修改路由配置: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"),]

创建并编写: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

Python Django搭建文件下载服务器的实现shili

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

Python Django搭建文件下载服务器的实现shili

以上是“Python Django搭建文件下载服务器的实现shili ”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注编程网服务器频道!

--结束END--

本文标题: Python Django搭建文件下载服务器的实现shili

本文链接: https://www.lsjlt.com/news/276144.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作