{"title":"如何部署 Django","version":"4.2","locale":"zh-hans","docname":"howto/deployment/index","url":"/zh-hans/4.2/howto/deployment/","canonical":"https://djangodocs.dev/zh-hans/4.2/howto/deployment/","summary":"Django 充满了让网站开发者生活更轻松的快捷工具，但如果你不能轻松部署你的网站，那么所有这些工具都没有用。自 Django 诞生以来，部署的便利性一直是其主要目标。 部署你的Django应用程序有很多选择，可以基于你的架构或者特定的业务需要，但是这不在Django可以给出指导建议的范围内。…","html":"<h1>如何部署 Django<a class=\"heading-anchor\" href=\"#how-to-deploy-django\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h1>\n<p>Django 充满了让网站开发者生活更轻松的快捷工具，但如果你不能轻松部署你的网站，那么所有这些工具都没有用。自 Django 诞生以来，部署的便利性一直是其主要目标。</p>\n<p>部署你的Django应用程序有很多选择，可以基于你的架构或者特定的业务需要，但是这不在Django可以给出指导建议的范围内。</p>\n<p>Django是一个需要Web服务器来运行的Web框架。然而由于大多数Web服务器不是用Python编写，我们需要一个接口来实现沟通。</p>\n<p>Django现在支持两种接口：WSGI和ASGI。</p>\n<ul class=\"simple\">\n<li><p><a class=\"reference external\" href=\"https://wsgi.readthedocs.io/en/latest/\">WSGI</a> 是 Python 的主要标准，用于网络服务器和应用程序之间的通信，但它只支持同步代码。</p></li>\n<li><p><a class=\"reference external\" href=\"https://asgi.readthedocs.io/en/latest/\">ASGI</a> 是新兴的，对异步友好的让你的Django网页使用Python异步特性和已经开发的Django异步特性的标准。</p></li>\n</ul>\n<p>你还应该考虑如何为你的应用程序处理 <a class=\"reference internal\" href=\"/zh-hans/4.2/howto/static-files/deployment/\"><span class=\"doc\">静态文件</span></a>，以及如何处理 <a class=\"reference internal\" href=\"/zh-hans/4.2/howto/error-reporting/\"><span class=\"doc\">错误报告</span></a>。</p>\n<p>最后，在将你的应用程序部署到生产环境中之前，你应该执行一遍 <span class=\"xref std std-doc\">deployment checklist 1</span> 以确保你的配置是合适的。</p>\n<div class=\"toctree-wrapper compound\">\n<ul>\n<li class=\"toctree-l1\"><a class=\"reference internal\" href=\"/zh-hans/4.2/howto/deployment/wsgi/\">如何使用 WSGI 进行部署</a><ul>\n<li class=\"toctree-l2\"><a class=\"reference internal\" href=\"/zh-hans/4.2/howto/deployment/wsgi/gunicorn/\">如何使用 Gunicorn 托管 Django</a></li>\n<li class=\"toctree-l2\"><a class=\"reference internal\" href=\"/zh-hans/4.2/howto/deployment/wsgi/uwsgi/\">如何用 uWSGI 托管 Django</a></li>\n<li class=\"toctree-l2\"><a class=\"reference internal\" href=\"/zh-hans/4.2/howto/deployment/wsgi/modwsgi/\">如何使用 Apache 和 <code class=\"docutils literal notranslate\"><span class=\"pre\">mod_wsgi</span></code> 托管 Django</a></li>\n<li class=\"toctree-l2\"><a class=\"reference internal\" href=\"/zh-hans/4.2/howto/deployment/wsgi/apache-auth/\">如何从 Apache 对 Django 的用户数据库进行认证</a></li>\n<li class=\"toctree-l2\"><a class=\"reference internal\" href=\"/zh-hans/4.2/howto/deployment/wsgi/#the-application-object\"><code class=\"docutils literal notranslate\"><span class=\"pre\">application</span></code> 对象</a></li>\n<li class=\"toctree-l2\"><a class=\"reference internal\" href=\"/zh-hans/4.2/howto/deployment/wsgi/#configuring-the-settings-module\">配置 settings 模块</a></li>\n<li class=\"toctree-l2\"><a class=\"reference internal\" href=\"/zh-hans/4.2/howto/deployment/wsgi/#applying-wsgi-middleware\">应用 WSGI 中间件</a></li>\n</ul>\n</li>\n<li class=\"toctree-l1\"><a class=\"reference internal\" href=\"/zh-hans/4.2/howto/deployment/asgi/\">如何使用 ASGI 来部署</a><ul>\n<li class=\"toctree-l2\"><a class=\"reference internal\" href=\"/zh-hans/4.2/howto/deployment/asgi/daphne/\">如何使用 Daphne 托管 Django</a></li>\n<li class=\"toctree-l2\"><a class=\"reference internal\" href=\"/zh-hans/4.2/howto/deployment/asgi/hypercorn/\">如何使用 Hypercorn 托管 Django。</a></li>\n<li class=\"toctree-l2\"><a class=\"reference internal\" href=\"/zh-hans/4.2/howto/deployment/asgi/uvicorn/\">如何使用 Uvicorn 托管 Django</a></li>\n<li class=\"toctree-l2\"><a class=\"reference internal\" href=\"/zh-hans/4.2/howto/deployment/asgi/#the-application-object\"><code class=\"docutils literal notranslate\"><span class=\"pre\">application</span></code> 对象</a></li>\n<li class=\"toctree-l2\"><a class=\"reference internal\" href=\"/zh-hans/4.2/howto/deployment/asgi/#configuring-the-settings-module\">配置 settings 模块</a></li>\n<li class=\"toctree-l2\"><a class=\"reference internal\" href=\"/zh-hans/4.2/howto/deployment/asgi/#applying-asgi-middleware\">应用 ASGI 中间件</a></li>\n</ul>\n</li>\n<li class=\"toctree-l1\"><a class=\"reference internal\" href=\"/zh-hans/4.2/howto/deployment/checklist/\">部署清单</a><ul>\n<li class=\"toctree-l2\"><a class=\"reference internal\" href=\"/zh-hans/4.2/howto/deployment/checklist/#run-manage-py-check-deploy\">运行 <code class=\"docutils literal notranslate\"><span class=\"pre\">manage.py</span> <span class=\"pre\">check</span> <span class=\"pre\">--deploy</span></code></a></li>\n<li class=\"toctree-l2\"><a class=\"reference internal\" href=\"/zh-hans/4.2/howto/deployment/checklist/#critical-settings\">关键配置</a></li>\n<li class=\"toctree-l2\"><a class=\"reference internal\" href=\"/zh-hans/4.2/howto/deployment/checklist/#environment-specific-settings\">特定于环境的配置</a></li>\n<li class=\"toctree-l2\"><a class=\"reference internal\" href=\"/zh-hans/4.2/howto/deployment/checklist/#https\">HTTPS</a></li>\n<li class=\"toctree-l2\"><a class=\"reference internal\" href=\"/zh-hans/4.2/howto/deployment/checklist/#performance-optimizations\">性能优化</a></li>\n<li class=\"toctree-l2\"><a class=\"reference internal\" href=\"/zh-hans/4.2/howto/deployment/checklist/#error-reporting\">发送错误</a></li>\n</ul>\n</li>\n</ul>\n</div>","rootId":"how-to-deploy-django","toc":[],"breadcrumbs":[{"docname":"howto/index","title":"操作指南","url":"/zh-hans/4.2/howto/"}],"prev":{"docname":"howto/custom-file-storage","title":"如何编写一个自定义的文件存储类","url":"/zh-hans/4.2/howto/custom-file-storage/"},"next":{"docname":"howto/deployment/wsgi/index","title":"如何使用 WSGI 进行部署","url":"/zh-hans/4.2/howto/deployment/wsgi/"},"formats":{"html":"/zh-hans/4.2/howto/deployment/","markdown":"/zh-hans/4.2/howto/deployment.md","json":"/zh-hans/4.2/howto/deployment.json"},"source":"https://github.com/django/django/blob/stable/4.2.x/docs/howto/deployment/index.txt","official":"https://docs.djangoproject.com/zh-hans/4.2/howto/deployment/","inVersions":["6.1","6.0","5.2","5.1","5.0","4.2","4.1","4.0","3.2","3.1","3.0","2.2","2.1","2.0"],"inLocales":["en","zh-hans","fr","ja","id","it","pt-br","ko","es","el","pl"]}