Django 大文件传输
· ☕ 2 分钟
1. 直接返回文件 如果静态文件在工程根目录的 media/test.zip,需要先将文件读入内存,再进行传输。代码如下: settings.py 配置 1 2 PROJECT_ROOT = os.path.dirname(os.path.abspath(__file__)) MEDIA_ROOT = os.path.join(PROJECT_ROOT, 'media/') yourapp/views.py 1 2 3 4 5 6 7 8 9 10 11 12 from django.conf import settings from django.http import HttpResponse from django.core.files.storage import FileSystemStorage def download_file_direct_from_file(request): file_system = FileSystemStorage(settings.MEDIA_ROOT) file_name = 'test.zip' with file_system.open(file_name) as f: response = HttpResponse(f) response['Content-Type'] = 'application/%s' % file_name.split('.')[-1] response['Content-Disposition'] = 'attachment; filename="%s"'% file_name return

Vagrant 搭建 Django 开发环境
· ☕ 5 分钟
Docker 解决了同一机器上的环境隔离问题,提高了运维部署的效率。 Vagrant 给开发提供一个统一的开发、测试、接近于完全隔离的环境。本文,主要讨论如何使用 Vagrant 搭建 Django 开发环境。版本:VirtualBox 5.0,Vagrant 1.8。 1. 基本概念 1.1 Vagrant Vagrant 是一个用来构建虚

从零开始使用 Docker 打包 Django 开发环境 (6) uWSGI、Django
· ☕ 3 分钟
1. 目录结构 django-devops-uwsgi 目录是打包 uWSGI 和 Django 的镜像编译文件。在镜像中安装 uWSGI、pip、virtualenv等必要的程序包。 在使用镜像创建容器时,执行 start.sh 脚本, 创建 Python 虚拟运行环境,从 Django 的 requirements.txt 安装依赖包,最后启动 uWSGI 监听端口,等待请求。 django-devops-compose/www/app 目录,用于放置 Django 的代码

从零开始使用 Docker 打包 Django 开发环境 (5) Nginx
· ☕ 2 分钟
1. 目录结构 1 2 3 4 5 6 7 8 9 10 11 12 ├── django-devops-nginx │ ├── Dockerfile │ └── nginx.repo ├── django-devops-compose │ ├── docker-compose.yml │ ├── www │ ├── conf │ │ ├── nginx.conf │ ├── log │ │ ├── nginx │ │ │ ├── access.log │ │ │ ├── error.log 每个服务的镜像 Dockerfile,单独放在一个文件夹。django-devo

从零开始使用 Docker 打包 Django 开发环境 (4) 项目组织
· ☕ 2 分钟
1. 部署架构 浏览器访问一个页面的程序处理流程: (1),浏览器向 Nginx 发起一个请求,如果匹配到 Nginx 的静态 URL,比如 /static 目录下的 js、css、404.html 等文件,那么 Nginx 直接返回文件。其他请求 URL,通过 uwsgi_pass 配置转给 uWSGI 处理。 (2),uWSGI 解析请求头