Persiapkan aplikasi Anda untuk penyebaran

Selesai

Siapkan aplikasi Anda untuk produksi dengan memperbarui beberapa pengaturan yang paling umum.

Tambahkan pustaka

Anda akan menggunakan dua pustaka baru untuk proyek Anda:

  • whitenoise untuk menyajikan file statis
  • psycopg2-binary untuk menyambungkan ke PostgreSQL, database produksi

Instal pustaka tersebut di proyek Anda:

  1. Di Visual Studio Code, buka requirements.txt.

  2. Tambahkan kode berikut di akhir dari requirements.txt.

    whitenoise
    psycopg2-binary
    
  3. Buka panel terminal baru dengan memilih Terminal>Terminal baru.

  4. Instal CLI dengan menjalankan perintah berikut.

    pip install -r requirements.txt
    

Buat file pengaturan produksi

Nilai yang Anda tetapkan ke dua pengaturan inti, ALLOWED_HOSTS dan DATABASES, bergantung pada lingkungan yang menghosting aplikasi. Pengaturan default dirancang untuk pengembangan. Untuk menjalankan aplikasi Anda dalam produksi, pastikan pengaturan ini diperbarui dengan benar.

ALLOWED_HOSTS mengontrol server yang diizinkan untuk menghosting atau menjalankan aplikasi Anda. Anda akan mengonfigurasinya untuk memungkinkan situs berjalan dari Azure dan secara lokal. DATABASES berisi daftar string koneksi yang tersedia.

Cara umum untuk mengonfigurasi pengaturan adalah dengan membuat file Python kedua yang berisi kumpulan pengaturan untuk produksi. Kemudian pemeriksaan di akhir settings.py menentukan apakah akan menggunakan pengaturan produksi.

Sekarang Anda akan membuat file pengaturan produksi dan menambahkan pemeriksaan untuk menentukan apakah aplikasi Anda berjalan dalam produksi:

  1. Buat file baru di dalam proyek. Beri nama azure.py.

  2. Tambahkan kode berikut ke os.

    from .settings import *
    import os
    
  3. Tambahkan kode berikut ke akhir file untuk menimpa ALLOWED_HOSTS agar Azure dapat menghosting aplikasi dan untuk menentukan asal tepercaya.

    ALLOWED_HOSTS = [os.environ['WEBSITE_HOSTNAME']] if 'WEBSITE_HOSTNAME' in os.environ else []
    CSRF_TRUSTED_ORIGINS = ['https://'+ os.environ['WEBSITE_HOSTNAME']] if 'WEBSITE_HOSTNAME' in os.environ else []
    

    Catatan

    Azure App Service secara otomatis membuat variabel lingkungan bernama WEBSITE_HOSTNAME. Variabel ini berisi URL untuk situs web Anda. Anda dapat menggunakan variabel ini untuk menentukan apakah aplikasi Anda berjalan di Azure.

  4. Tambahkan kode berikut untuk mengonfigurasi string koneksi database untuk PostgreSQL.

    hostname = os.environ['DBHOST']
    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.postgresql',
            'NAME': os.environ['DBNAME'],
            'HOST': hostname + ".postgres.database.azure.com",
            'USER': os.environ['DBUSER'],
            'PASSWORD': os.environ['DBPASS'] 
        }
    }
    

    Catatan

    Anda akan mengatur variabel lingkungan di Azure di langkah selanjutnya.

    Catatan

    Sambungan basis data adalah untuk Server Fleksibel PostgreSQL. Untuk PostgreSQL Single Server, setel nilai USER ke os.environ['DBUSER'] + "@" + hostname.

    String koneksi yang Anda gunakan adalah untuk PostgreSQL. Berikan informasi berikut:

    • MESIN: Jenis database
    • NAMA: Nama database
    • HOST: URL untuk server
    • USER: Nama pengguna yang digunakan untuk menyambungkan ke database
    • KATA SANDI: Kata Sandi untuk pengguna
  5. Tambahkan kode berikut ke bagian bawah file untuk mengaktifkan whitenoise, yang akan menyajikan file statis.

    MIDDLEWARE = [
        'django.middleware.security.SecurityMiddleware',
        # Enables whitenoise for serving static files
        'whitenoise.middleware.WhiteNoiseMiddleware',
        'django.contrib.sessions.middleware.SessionMiddleware',
        'django.middleware.common.CommonMiddleware',
        'django.middleware.csrf.CsrfViewMiddleware',
        'django.contrib.auth.middleware.AuthenticationMiddleware',
        'django.contrib.messages.middleware.MessageMiddleware',
        'django.middleware.clickjacking.XFrameOptionsMiddleware',
    ]
    STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')
    

    WhiteNoise adalah middleware yang membaca permintaan pengguna untuk file statis seperti CSS atau JavaScript. Ini juga memastikan file dilayani dengan benar. Anda mendaftarkan middleware dengan memperbarui MIDDLEWARE array. Anda mendaftarkan STATIC_ROOT untuk menyimpan file statis.

  6. Atur SECRET_KEY dengan satu baca dari variabel lingkungan dengan menambahkan kode berikut.

    SECRET_KEY = os.getenv('SECRET_KEY')
    

    Anda akan membuat kunci rahasia baru setelah menyebarkan aplikasi dan menyimpannya sebagai pengaturan aplikasi.

  7. Nonaktifkan mode penelusuran kesalahan dengan menambahkan kode berikut.

    DEBUG = False
    

Konfigurasikan aplikasi Anda untuk menggunakan file pengaturan produksi

Setelah membuat file pengaturan produksi, Anda dapat memperbarui aplikasi untuk memuat file dalam produksi. Mulailah dengan mencari WEBSITE_HOSTNAME variabel lingkungan. Variabel ini menunjukkan aplikasi berjalan di Azure.

  1. Buka settings.py.

  2. Tambahkan kode berikut ke akhir file untuk mengambil alih pengaturan yang diperlukan saat aplikasi berjalan dalam produksi.

    import os
    if 'WEBSITE_HOSTNAME' in os.environ: # Running on Azure
        from .azure import *
    
  3. Simpan semua perubahan dengan memilih File>Simpan semua.

Anda sekarang telah mengonfigurasi aplikasi Django untuk produksi.