{"title":"Bagaimana mengembangkan dengan ASGI","version":"4.2","locale":"id","docname":"howto/deployment/asgi/index","url":"/id/4.2/howto/deployment/asgi/","canonical":"https://djangodocs.dev/id/4.2/howto/deployment/asgi/","summary":"Seperti WSGI, Django juga mendukung menyebarkan pada ASGI, yang baru muncul standar Python untuk peladen jaringan dan aplikasi asinkron.","html":"<h1>Bagaimana mengembangkan dengan ASGI<a class=\"heading-anchor\" href=\"#how-to-deploy-with-asgi\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h1>\n<p>Seperti WSGI, Django juga mendukung menyebarkan pada <a class=\"reference external\" href=\"https://asgi.readthedocs.io/en/latest/\">ASGI</a>, yang baru muncul standar Python untuk peladen jaringan dan aplikasi asinkron.</p>\n<p>Perinta pengelolaan Django <a class=\"reference internal\" href=\"/id/4.2/ref/django-admin/#django-admin-startproject\"><code class=\"xref std std-djadmin docutils literal notranslate\">startproject</code></a> mensetel konfigurasi awalan ASGI untuk anda, dimana anda dapat merubah sesuai kebutuhan proyek anda, dan langsung peladen aplikasi patuhASGI apapun untuk digunakan.</p>\n<p>Django menyertakan dokumentasi mulai untuk peladen ASGI berikut:</p>\n<div class=\"toctree-wrapper compound\">\n<ul>\n<li class=\"toctree-l1\"><a class=\"reference internal\" href=\"/id/4.2/howto/deployment/asgi/daphne/\">Bagaimana menggunakan Django dengan Daphne</a></li>\n<li class=\"toctree-l1\"><a class=\"reference internal\" href=\"/id/4.2/howto/deployment/asgi/hypercorn/\">Bagaimana menggunakan Django dengan Hypercorn</a></li>\n<li class=\"toctree-l1\"><a class=\"reference internal\" href=\"/id/4.2/howto/deployment/asgi/uvicorn/\">Bagaimana menggunakan Django dengan Uvicorn</a></li>\n</ul>\n</div>\n<section id=\"the-application-object\">\n<h2>Obyek <code class=\"docutils literal notranslate\">aplikasi</code><a class=\"heading-anchor\" href=\"#the-application-object\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Like WSGI, ASGI has you supply an <code class=\"docutils literal notranslate\">application</code> callable which\nthe application server uses to communicate with your code. It's commonly\nprovided as an object named <code class=\"docutils literal notranslate\">application</code> in a Python module accessible to\nthe server.</p>\n<p>Perintah <a class=\"reference internal\" href=\"/id/4.2/ref/django-admin/#django-admin-startproject\"><code class=\"xref std std-djadmin docutils literal notranslate\">startproject</code></a> membuat sebuah berkas <code class=\"file docutils literal notranslate\">&lt;project_name&gt;/asgi.py</code> yang mengandung seperti <code class=\"docutils literal notranslate\">application</code> dapat dipanggil.</p>\n<p>Itu tidak digunakan oleh server pengembangan (<code class=\"docutils literal notranslate\">runserver</code>), tetapi anda dapat digunakan oleh peladen ASGI apapun baik dalam pengembangan maupun produksi.</p>\n<p>Peladen ASGI biasanya mengambil jalur ke aplikasi dapat dipanggil sebagai string; untuk kebanyakan proyek Django, ini akan terlihat seperti <code class=\"docutils literal notranslate\">myproject.asgi:application</code>.</p>\n<aside class=\"admonition admonition-warning\" role=\"note\">\n<p class=\"admonition-title\">Peringatan</p>\n<p>Selagi penangan ASGI awalan Django akan menjalankan semua kode anda dalam antrian sinkronus, jika anda memilih menjalankan penangan asinkronus anda waspada terhadap keamanan-asinkronus.</p>\n<p>Do not call blocking synchronous functions or libraries in any async code.\nDjango prevents you from doing this with the parts of Django that are not\nasync-safe, but the same may not be true of third-party apps or Python\nlibraries.</p>\n</aside>\n</section>\n<section id=\"configuring-the-settings-module\">\n<h2>Konfigurasi modul pengaturan<a class=\"heading-anchor\" href=\"#configuring-the-settings-module\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Ketika peladen ASGI memuat aplikasi anda, Django butuh meng-impor modul setelan — disitulah aplikasi keseluruhan anda ditentukan.</p>\n<p>Django menggunakan lingkungan variabel  <span class=\"target\" id=\"index-2\"></span><a class=\"reference internal\" href=\"/id/4.2/topics/settings/#envvar-DJANGO_SETTINGS_MODULE\"><code class=\"xref std std-envvar docutils literal notranslate\">DJANGO_SETTINGS_MODULE</code></a> untuk menempatkan modul pengaturan yang sesuai. Dia harus mengandung jalur titik pada modul pengaturan. Anda dapat menggunakan nilai berbeda untuk pengembangan dan produksi; dia semua tergantung pada bagaimana anda mengorganisasikan pengaturan anda.</p>\n<p>Jika variabel ini tidak disetel, awalan <code class=\"file docutils literal notranslate\">asgi.py</code> mensetel itu menjadi <code class=\"docutils literal notranslate\">mysite.settings</code>, dimana <code class=\"docutils literal notranslate\">mysite</code> adalah nama dari proyek anda.</p>\n</section>\n<section id=\"applying-asgi-middleware\">\n<h2>Memberlakukan middleware ASGI<a class=\"heading-anchor\" href=\"#applying-asgi-middleware\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Untuk memberlakukan middleware ASGI, atau membungkus Django dalam aplikasi ASGI lain, anda dapat membungkus objek <code class=\"docutils literal notranslate\">application</code> Django di berkas <code class=\"docutils literal notranslate\">asgi.py</code>. Sebagai contoh:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</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=\"Code code\"><code><span class=\"kn\">from</span> <span class=\"nn\">some_asgi_library</span> <span class=\"kn\">import</span> AmazingMiddleware\n\napplication <span class=\"o\">=</span> AmazingMiddleware<span class=\"p\">(</span>application<span class=\"p\">)</span>\n</code></pre></div>\n</section>","rootId":"how-to-deploy-with-asgi","toc":[{"title":"Obyek aplikasi","anchor":"the-application-object","children":[]},{"title":"Konfigurasi modul pengaturan","anchor":"configuring-the-settings-module","children":[]},{"title":"Memberlakukan middleware ASGI","anchor":"applying-asgi-middleware","children":[]}],"breadcrumbs":[{"docname":"howto/index","title":"Panduan \"Bagaimana\"","url":"/id/4.2/howto/"},{"docname":"howto/deployment/index","title":"Bagaimana menyebarkan Django","url":"/id/4.2/howto/deployment/"}],"prev":{"docname":"howto/deployment/wsgi/apache-auth","title":"Bagaimana mengautentifikasi terhadap basisdata pengguna Django dari Apache","url":"/id/4.2/howto/deployment/wsgi/apache-auth/"},"next":{"docname":"howto/deployment/asgi/daphne","title":"Bagaimana menggunakan Django dengan Daphne","url":"/id/4.2/howto/deployment/asgi/daphne/"},"formats":{"html":"/id/4.2/howto/deployment/asgi/","markdown":"/id/4.2/howto/deployment/asgi.md","json":"/id/4.2/howto/deployment/asgi.json"},"source":"https://github.com/django/django/blob/stable/4.2.x/docs/howto/deployment/asgi/index.txt","official":"https://docs.djangoproject.com/id/4.2/howto/deployment/asgi/","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","zh-hans","fr","ja","id","it","pt-br","ko","es","el","pl"]}