{"title":"Bagaimana mengembangkan dengan ASGI","version":"6.1","locale":"id","docname":"howto/deployment/asgi/index","url":"/id/6.1/howto/deployment/asgi/","canonical":"https://djangodocs.dev/id/6.1/howto/deployment/asgi/","summary":"Seperti WSGI, Django juga mendukung menyebarkan pada ASGI , yang baru muncul standar Python untuk peladen jaringan dan aplikasi asinkron. Perinta pengelolaan Django…","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/6.1/ref/django-admin/#django-admin-startproject\"><code class=\"xref std std-djadmin docutils literal notranslate\"><span class=\"pre\">startproject</span></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/6.1/howto/deployment/asgi/daphne/\">Bagaimana menggunakan Django dengan Daphne</a></li>\n<li class=\"toctree-l1\"><a class=\"reference internal\" href=\"/id/6.1/howto/deployment/asgi/granian/\">How to use Django with Granian</a></li>\n<li class=\"toctree-l1\"><a class=\"reference internal\" href=\"/id/6.1/howto/deployment/asgi/hypercorn/\">Bagaimana menggunakan Django dengan Hypercorn</a></li>\n<li class=\"toctree-l1\"><a class=\"reference internal\" href=\"/id/6.1/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\"><span class=\"pre\">aplikasi</span></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>Seperti WSGI, ASGI mempunyai pasokan <code class=\"docutils literal notranslate\"><span class=\"pre\">application</span></code> yang dapat dipanggil  dimana peladen aplikasi menggunakan untuk komunikasi dengan kode anda. Ini biasanya disediakan sebagai objek bernama <code class=\"docutils literal notranslate\"><span class=\"pre\">application</span></code> di modul Python dapat diakses ke peladen.</p>\n<p>Perintah <a class=\"reference internal\" href=\"/id/6.1/ref/django-admin/#django-admin-startproject\"><code class=\"xref std std-djadmin docutils literal notranslate\"><span class=\"pre\">startproject</span></code></a> membuat sebuah berkas <code class=\"file docutils literal notranslate\"><span class=\"pre\">&lt;project_name&gt;/asgi.py</span></code> yang mengandung seperti <code class=\"docutils literal notranslate\"><span class=\"pre\">application</span></code> dapat dipanggil.</p>\n<p>Itu tidak digunakan oleh server pengembangan (<code class=\"docutils literal notranslate\"><span class=\"pre\">runserver</span></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\"><span class=\"pre\">myproject.asgi:application</span></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>Jangan memanggil fungsi sinkronus blok atau pustaka dalam kode asinkronus apapun. Django mencegah anda melakukan ini dengan bagian dari Django yang tidak aman-asinkronus, tetapi yang sama mungkin tidak benar dari aplikasi pihak ketiga atau pustaka Python.</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/6.1/topics/settings/#envvar-DJANGO_SETTINGS_MODULE\"><code class=\"xref std std-envvar docutils literal notranslate\"><span class=\"pre\">DJANGO_SETTINGS_MODULE</span></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\"><span class=\"pre\">asgi.py</span></code> mensetel itu menjadi <code class=\"docutils literal notranslate\"><span class=\"pre\">mysite.settings</span></code>, dimana <code class=\"docutils literal notranslate\"><span class=\"pre\">mysite</span></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\"><span class=\"pre\">application</span></code> Django di berkas <code class=\"docutils literal notranslate\"><span class=\"pre\">asgi.py</span></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=\"w\"> </span><span class=\"nn\">some_asgi_library</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">AmazingMiddleware</span>\n\n<span class=\"n\">application</span> <span class=\"o\">=</span> <span class=\"n\">AmazingMiddleware</span><span class=\"p\">(</span><span class=\"n\">application</span><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 Cara-cara","url":"/id/6.1/howto/"},{"docname":"howto/deployment/index","title":"Bagaimana menyebarkan Django","url":"/id/6.1/howto/deployment/"}],"prev":{"docname":"howto/deployment/wsgi/apache-auth","title":"Bagaimana mengautentifikasi terhadap basisdata pengguna Django dari Apache","url":"/id/6.1/howto/deployment/wsgi/apache-auth/"},"next":{"docname":"howto/deployment/asgi/daphne","title":"Bagaimana menggunakan Django dengan Daphne","url":"/id/6.1/howto/deployment/asgi/daphne/"},"formats":{"html":"/id/6.1/howto/deployment/asgi/","markdown":"/id/6.1/howto/deployment/asgi.md","json":"/id/6.1/howto/deployment/asgi.json"},"source":"https://github.com/django/django/blob/stable/6.1.x/docs/howto/deployment/asgi/index.txt","official":"https://docs.djangoproject.com/id/6.1/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","sv","zh-hans","ga","fr","ja","id","it","pt-br","ko","es","el","pl"]}