Persiapkan aplikasi Anda untuk penyebaran
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 statispsycopg2-binary
untuk menyambungkan ke PostgreSQL, database produksi
Instal pustaka tersebut di proyek Anda:
Di Visual Studio Code, buka requirements.txt.
Tambahkan kode berikut di akhir dari requirements.txt.
whitenoise psycopg2-binary
Buka panel terminal baru dengan memilih Terminal>Terminal baru.
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:
Buat file baru di dalam proyek. Beri nama azure.py.
Tambahkan kode berikut ke
os
.from .settings import * import os
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.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
keos.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
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 mendaftarkanSTATIC_ROOT
untuk menyimpan file statis.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.
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.
Buka settings.py.
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 *
Simpan semua perubahan dengan memilih File>Simpan semua.
Anda sekarang telah mengonfigurasi aplikasi Django untuk produksi.