Django adalah kerangka web berbasis Python yang mengikuti Model-Template-Views(MTV). Django adalah alat populer untuk pengembangan web karena memungkinkan pengembangan situs web yang cepat.
Dalam tutorial ini kami akan memandu Anda tentang cara mengatur Django. Kami akan memandu Anda dengan penyiapan produksi yang paling disukai dengan lingkungan virtual.
Jika Anda mencari VPS penyedia untuk menjalankan aplikasi Anda, Anda dapat memeriksa penawaran antar server.
Mari kita mulai dengan penyiapan.
1 1. Memperbarui sistem
sudo apt update -y && apt upgrade -y
2 2. Memasang pip dan Lingkungan Virtual
Pertama, periksa Versi Python3 dari sistem Anda.
# python3 -V
Python 3.8.10
Mari kita instal PIP dan Venv.
sudo apt install python3-pip python3-venv
3 3. Buat Direktori Proyek
Mari kita buat direktori proyek.
sudo mkdir /var/www/django
Ubah direktori ke direktori proyek.
cd /var/www/django
Mari kita ciptakan lingkungan virtual.
python3 -m venv django_venv
Aktifkan lingkungan virtual.
source django_venv/bin/activate
4 4. Memasang Django 3.2
Kami akan menginstal Django dengan PIP.
(django_venv) pip install django==3.2
Verifikasi penginstalan.
(django_venv) django-admin --version
Output:
3.2
5 5. Membuat Proyek
Mari kita membuat proyek Django.
CATATAN: Harap jangan lupa untuk menyertakan titik (.) di akhir untuk menghindari terlalu banyak direktori bersarang.
(django_venv) django-admin startproject myproject .
Setelah membuat proyek, kita perlu memigrasikan database. Tapi pertama-tama kita perlu membuat database MySQL/MariaDB sebelum kita melakukan migrasi. Kami berasumsi bahwa Anda telah menjalankan layanan MySQL/MariaDb.
Mari kita buat databasenya.
MariaDB [(none)]> create database django;
MariaDB [(none)]> grant all privileges on django.* to 'django'@'localhost' identified by 'mypassword';
MariaDB [(none)]> flush privileges;
MariaDB [(none)]> exit;
Catatan :Jangan lupa untuk mengubah sandi dengan kata sandi pilihan Anda.
Mari kita perbarui settings.py .
sudo nano myproject/settings.py
Basis data default yang diatur dalam Django adalah SQLite. Karena kami sedang menyetel situs produksi, kami akan memperbaruinya untuk menggunakan MySQL/MariaDB.
Mari kita perbarui dengan di bawah ini:
DATABASES = {
'default': {
'ENGINE' : 'django.db.backends.mysql',
'NAME' : 'django', # database name
'USER' : 'django', # Mysql user
'PASSWORD': 'mypassword', # Mysql password
'HOST' : 'localhost',
'PORT' : '3306',
}
}
Sebelum kita menjalankan migrasi mari kita install dulu mysql-config .
Jika Anda menggunakan MySQL, jalankan perintah ini.
sudo apt-get install libmysqlclient-dev
Jika Anda menggunakan MariaDB, jalankan ini.
sudo apt-get install libmariadbclient-dev
Kemudian mari kita instal driver Python MySQL.
(django_venv) pip install mysqlclient
Sekarang mari kita jalankan migrasinya.
(django_venv) python3 manage.py migrate
Output:
Operations to perform:
Apply all migrations: admin, auth, contenttypes, sessions
Running migrations:
Applying contenttypes.0001_initial... OK
Applying auth.0001_initial... OK
Applying admin.0001_initial... OK
Applying admin.0002_logentry_remove_auto_add... OK
Applying admin.0003_logentry_add_action_flag_choices... OK
Applying contenttypes.0002_remove_content_type_name... OK
Applying auth.0002_alter_permission_name_max_length... OK
Applying auth.0003_alter_user_email_max_length... OK
Applying auth.0004_alter_user_username_opts... OK
Applying auth.0005_alter_user_last_login_null... OK
Applying auth.0006_require_contenttypes_0002... OK
Applying auth.0007_alter_validators_add_error_messages... OK
Applying auth.0008_alter_user_username_max_length... OK
Applying auth.0009_alter_user_last_name_max_length... OK
Applying auth.0010_alter_group_name_max_length... OK
Applying auth.0011_update_proxy_permissions... OK
Applying auth.0012_alter_user_first_name_max_length... OK
Applying sessions.0001_initial... OK
6 6. Mengakses Aplikasi Django
Sebelum kita dapat mengakses aplikasi Django kita, kita perlu menambahkan Alamat IP atau domain kita ke ALLOWED_HOSTS di settings.py . Mari kita perbarui settings.py.
sudo nano myproject/settings.py
Buka “ALLOWED_HOSTS bagian ”.
ALLOWED_HOSTS = ['your_server_ip', 'domain.com']
Perbarui “ip_server_anda ” dan “domain.com ” dengan Alamat IP dan Domain Anda lalu simpan.
Sebelum kita dapat mengakses aplikasi Django kita, kita perlu menjalankan perintah ini.
python3 manage.py runserver 0.0.0.0:8000
Anda sekarang dapat mengakses Aplikasi Django Anda di http://IPaddress:8000
Mari kita buat pengguna Admin untuk proyek kita
(django_venv) python3 manage.py createsuperuser
Setelah menjalankan perintah, berikan nama pengguna, email, dan kata sandi admin Anda.
7 7. Menyiapkan produksi dengan Apache dan WSGI
Untuk menyiapkan produksi, kami akan menginstal Apache dan modul mod_wsgi Apache.
sudo apt-get install apache2 libapache2-mod-wsgi-py3
Mari kita buat host virtual.
sudo nano /etc/apache2/sites-available/django.conf
Tambahkan yang berikut ini ke virtual host.
Catatan:Jangan lupa ganti domain.com dengan domain Anda sendiri.
<VirtualHost *:80>
ServerName domain.com
ServerAlias www.domain.com
DocumentRoot /var/www/django
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
Alias /static/ /var/www/django/myproject/static/
<Directory /var/www/django/myproject/static>
Require all granted
</Directory>
Alias /media/ /var/www/django/myproject/media/
<Directory /var/www/django/myproject/media>
Require all granted
</Directory>
<Directory /var/www/django/myproject>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
WSGIDaemonProcess mydjangoproject python-path=/var/www/django python-home=/var/www/django/django_venv
WSGIProcessGroup mydjangoproject
WSGIScriptAlias / /var/www/django/myproject/wsgi.py
</VirtualHost>
Mari kita aktifkan Virtual Host:
sudo a2ensite django.conf
Mulai ulang server web Apache.
sudo systemctl restart apache2
Sekarang mari kita edit lagi settings.py agar server web kami menyajikan file statis.
sudo nano myproject/settings.py
Di bagian atas file tambahkan:
import os
Lalu buka “ file statis “ dan pastikan untuk menambahkan nilai berikut:
PROJECT_ROOT =os.path.dirname(os.path.abspath(__file__))
STATIC_ROOT =os.path.join(PROJECT_ROOT, ‘statis’)
Seharusnya terlihat seperti di bawah ini.
# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/3.2/howto/static-files/
PROJECT_ROOT = os.path.dirname(os.path.abspath(__file__))
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(PROJECT_ROOT, 'static')
Sekarang mari kita kumpulkan semua konten statis.
(django_venv) python3 manage.py collectstatic
Output:
128 static files copied to '/var/www/django/myproject/static'.
Mulai ulang layanan Apache:
sudo systemctl restart apache2
Itu saja, situs produksi telah disiapkan. Anda sekarang dapat mengakses Aplikasi Django Anda dengan domain Anda di http://domain.com. Jika Anda ingin mengamankan situs Anda dan memasang sertifikat SSL, Anda dapat memeriksa artikel ini.
8 Kesimpulan
Anda telah belajar bagaimana menginstal Django 3.2 pada Ubuntu 20.04 dengan Apache dan WSGI. Jika Anda menyukai artikel ini, Anda mungkin juga menyukai artikel kami yang lain di situs ini.