{"title":"如何使用 Uvicorn 托管 Django","version":"6.0","locale":"zh-hans","docname":"howto/deployment/asgi/uvicorn","url":"/zh-hans/6.0/howto/deployment/asgi/uvicorn/","canonical":"https://djangodocs.dev/zh-hans/6.0/howto/deployment/asgi/uvicorn/","summary":"Uvicorn 是一个基于 uvloop 和 httptools 的加强运行速度的ASGI服务器。","html":"<h1>如何使用 Uvicorn 托管 Django<a class=\"heading-anchor\" href=\"#how-to-use-django-with-uvicorn\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h1>\n<p><a class=\"reference external\" href=\"https://www.uvicorn.dev/\">Uvicorn</a> 是一个基于 <code class=\"docutils literal notranslate\">uvloop</code> 和 <code class=\"docutils literal notranslate\">httptools</code> 的加强运行速度的ASGI服务器。</p>\n<section id=\"installing-uvicorn\">\n<h2>安装Uvicorn<a class=\"heading-anchor\" href=\"#installing-uvicorn\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>你可以使用 <code class=\"docutils literal notranslate\">pip</code> 安装 Uvicorn：</p>\n<div class=\"code-block\" data-language=\"shell\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Shell</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Shell code\"><code>python -m pip install uvicorn\n</code></pre></div>\n</section>\n<section id=\"running-django-in-uvicorn\">\n<h2>在 Uvicorn 中运行 Django<a class=\"heading-anchor\" href=\"#running-django-in-uvicorn\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>一旦 Uvicorn 安装完毕，你就可用 <code class=\"docutils literal notranslate\">uvicorn</code> 命令来运行ASGI应用了。Uvicorn 运行需要包含一个 ASGI 应用程序模块的位置和应用程序的名称（以冒号分隔）。</p>\n<p>对于一个典型的 Django 项目，调用 Uvicorn 的方式如下：</p>\n<div class=\"code-block\" data-language=\"shell\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Shell</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Shell code\"><code>python -m uvicorn myproject.asgi:application\n</code></pre></div>\n<p>它将开启一个进程，监听 <code class=\"docutils literal notranslate\">127.0.0.1:8000</code>。这需要你的项目位于 Python path 上。为了确保这点，你应该在与 <code class=\"docutils literal notranslate\">manage.py</code> 文件相同的路径中运行这个命令。</p>\n<p>在开发模式下，你可以添加 <code class=\"docutils literal notranslate\">--reload</code> 选项，以便在磁盘上的文件发生更改时重新加载服务器。</p>\n<p>有关更多的高级用法，请参阅 <a class=\"reference external\" href=\"https://www.uvicorn.dev/\">Uvicorn documentation 1</a>.</p>\n</section>\n<section id=\"deploying-django-using-uvicorn-and-gunicorn\">\n<h2>使用 Uvicorn 和 Gunicorn 部署 Django 应用<a class=\"heading-anchor\" href=\"#deploying-django-using-uvicorn-and-gunicorn\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p><a class=\"reference external\" href=\"https://gunicorn.org/\">Gunicorn</a> 是一个强大的 Web 服务器，实现了进程监控和自动重启。在生产环境中运行 Uvicorn 时，这非常有用。</p>\n<p>要安装 Uvicorn 和 Gunicorn，请使用以下命令：</p>\n<div class=\"code-block\" data-language=\"shell\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Shell</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Shell code\"><code>python -m pip install uvicorn uvicorn-worker gunicorn\n</code></pre></div>\n<p>然后像这样使用 Uvicorn worker 类启动 Gunicorn ：</p>\n<div class=\"code-block\" data-language=\"shell\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Shell</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Shell code\"><code>python -m gunicorn myproject.asgi:application -k uvicorn_worker.UvicornWorker\n</code></pre></div>\n</section>","rootId":"how-to-use-django-with-uvicorn","toc":[{"title":"安装Uvicorn","anchor":"installing-uvicorn","children":[]},{"title":"在 Uvicorn 中运行 Django","anchor":"running-django-in-uvicorn","children":[]},{"title":"使用 Uvicorn 和 Gunicorn 部署 Django 应用","anchor":"deploying-django-using-uvicorn-and-gunicorn","children":[]}],"breadcrumbs":[{"docname":"howto/index","title":"如何引导","url":"/zh-hans/6.0/howto/"},{"docname":"howto/deployment/index","title":"如何部署 Django","url":"/zh-hans/6.0/howto/deployment/"},{"docname":"howto/deployment/asgi/index","title":"如何使用 ASGI 来部署","url":"/zh-hans/6.0/howto/deployment/asgi/"}],"prev":{"docname":"howto/deployment/asgi/hypercorn","title":"如何使用 Hypercorn 托管 Django。","url":"/zh-hans/6.0/howto/deployment/asgi/hypercorn/"},"next":{"docname":"howto/deployment/checklist","title":"部署清单","url":"/zh-hans/6.0/howto/deployment/checklist/"},"formats":{"html":"/zh-hans/6.0/howto/deployment/asgi/uvicorn/","markdown":"/zh-hans/6.0/howto/deployment/asgi/uvicorn.md","json":"/zh-hans/6.0/howto/deployment/asgi/uvicorn.json"},"source":"https://github.com/django/django/blob/stable/6.0.x/docs/howto/deployment/asgi/uvicorn.txt","official":"https://docs.djangoproject.com/zh-hans/6.0/howto/deployment/asgi/uvicorn/","inVersions":["6.1","6.0","5.2","5.1","5.0","4.2","4.1","4.0","3.2","3.1","3.0"],"inLocales":["en","sv","zh-hans","ga","fr","ja","id","it","pt-br","ko","es","el","pl"]}