# Django 3.2.11.dev 文档

# 部署 Django

Django 中简化 Web 开发的快捷函数俯拾皆是，但是如果不能轻松部署网站的话，所有的工具都徒劳无益。Django 从最初就把方便部署当作一个主要目标。

部署你的Django应用程序有很多选择，可以基于你的架构或者特定的业务需要，但是这不在Django可以给出指导建议的范围内。

Django是一个需要Web服务器来运行的Web框架。然而由于大多数Web服务器不是用Python编写，我们需要一个接口来实现沟通。

Django现在支持两种接口：WSGI和ASGI。

- WSGI 是主要的用于应用程序和Web服务器通信的Python标准，但是它只支持同步代码。
- ASGI 是新兴的，对异步友好的让你的Django网页使用Python异步特性和已经开发的Django异步特性的标准。

你必须要考虑如何处理你的应用程序的静态文件 :doc:` static files 1` ，以及如何处理 error reporting2。

最后，在将你的应用程序部署到生产环境中之前，你应该执行一遍 deployment checklist 1 以确保你的配置是合适的。

- 如何使用 WSGI 进行部署
  - 如何使用 Gunicorn 托管 Django
  - 如何用 uWSGI 托管 Django
  - 如何使用 Apache 和 `mod_wsgi` 托管 Django
  - Apache 利用 Django 的用户数据库进行验证
  - `application` 对象
  - 配置 settings 模块
  - 应用 WSGI 中间件
- 如何使用 ASGI 来部署
  - 如何使用 Daphne 托管 Django
  - 如何使用 Hypercorn 托管 Django。
  - 如何使用 Uvicorn 托管 Django
  - `application` 对象
  - 配置 settings 模块
  - 应用 ASGI 中间件
- 部署清单
  - 运行 `manage.py check --deploy`
  - 关键配置
  - 特定于环境的配置
  - HTTPS
  - 性能优化
  - 发送错误