Sederhana Menggunakan
Django 2.1.5
Jadi, request dari user dalam bentuk URL, di teruskan ke views. Selanjutnya views akan menulis/mengambil data
dari models. Kemudian mengirimkan data yang telah diproses ke template untuk diracik dan ditampilkan sebagai respon
ke user. Secara sederhana dapat digambarkan:
Untuk mengaktifkan virtual environment yang sebelumnya telah kita buat, dapat kita lakukan dengan command:
C:\Users\LENOVO\Documents\aplikasi>aplikasi_env\Scripts\activate
Jika nama virtual environment sudah muncul sebagai prefix, berarti virtual environment berhasil diaktifkan.
5 Menginstall Django
Pada tahap ini akan kita lakukan installasi Django dengan menggunakan PIP. Namun, sebelumnya harus kita pastikan
menggunakan pip versi terbaru. Upgrade pip dapat dilakukan dengan command:
(aplikasi_env) C:\Users\LENOVO\Documents\aplikasi>django-admin
startproject mahasiswa
Keterangan:
startproject adalah perintah untuk membuat project;
mahasiswa adalah nama direktori project-nya.
Jika project berhasil dibuat, maka akan muncul folder “mahasiswa” sesuai dengan nama project yang kita buat tadi.
Di dalam direktori mahasiswa akan kita dapatkan struktur sebagai berikut:
Direktori mahasiswa/ adalah root direktori yang berisi seluruh file dari project.
File manage.py adalah program untuk mengelola project Django. Kita akan sering mengeksekusi manage.py saat
ingin melakukan sesuatu terhadap project, misalnya: menjalankan server, melakukan migrasi, membuat aplikasi,
dll.
File mahasiswa/__init__.py adalah sebuah file kosong yang menyatakan direktori ini adalah sebuah paket
(python package).
File mahasiswa /settings.py adalah tempat kita mengkonfigurasi project.
File mahasiswa /urls.py adalah tempat kita mendeklarasikan URL.
File mahasiswa /wsgi.py adalah entri point untuk WSGI-compatible
7 Menjalankan Project
Project yang telah kita buat tadi dapat dijalankan dengan command:
(aplikasi_env) C:\Users\LENOVO\Documents\aplikasi\mahasiswa>python
manage.py runserver
Masuk ke url http://127.0.0.1:8000/ dengan browser, dan akan kita jumpai halaman seperti dibawah ini:
8 Menyesuaikan Setting
Buka file settings.py pada direktori mahasiswa. Kemudian lakukan penyesuaian sesuai dengan yang kita inginkan.
Misalkan:
b. Database
Django tlah menyediakan database default/bawaan yaitu SQLite.
Python secara otomatis akan membuat folder data_mahasiswa beserta file-file yang akan dibutuhkan untuk
pengerjaan aplikasi data_mahasiswa.
class DataMahasiswa(models.Model):
nama = models.CharField(max_length=200)
nim = models.CharField(max_length=10, unique=True)
tempat_lahir = models.CharField(max_length=200)
tanggal_lahir = models.DateField()
no_hp = models.IntegerField(null=True, blank=True)
alamat = models.TextField()
jenis_kelamin=models.SmallIntegerField(choice s=JENIS_KELAMIN)
def __str__(self):
return self.nama
Pada bagian bawah kita melihat method __str__(self) yang akan menampilkan representasi object dalam bentuk string
yang dapat dibaca.
(aplikasi_env) C:\Users\LENOVO\Documents\aplikasi\mahasiswa>python
manage.py makemigrations
Secara otomatis, akan tercipta file skema dengan nama 0001_initial.py.
(aplikasi_env) C:\Users\LENOVO\Documents\aplikasi\mahasiswa>python
manage.py migrate
(aplikasi_env) C:\Users\LENOVO\Documents\aplikasi\mahasiswa>python
manage.py createsuperuser
Kemudian login dengan user yang baru saja kita buat. Setelah berhasil masuk kita akan berhadapan dengan halaman
seperti ini:
Untuk memunculkan halaman pengelolaan data mahasiswa, perlu kita definisikan terlebih dahulu melalui file admin.py.
admin.site.register(DataMahasiswa)
Maka akan muncul pada halaman admin seperti berikut ini:
data_mahasiswa = DataMahasiswa.objects.all()
data['mahasiswa'] = data_mahasiswa
return render(request,'index.html', data)
data_mahasiswa, variable untuk menyimpan semua data yang dipanggil dari table DataMahasiswa
data[‘mahasiswa’], data adalah dictionary yang telah dibuat, sedangkan ‘mahasiswa’ menunjukkan
key atau kunci yang akan dipanggil ketika di template.
STATICFILES_DIRS = (
os.path.join(BASE_DIR, 'static'),
)
10.2.1 Buat Base Template
Base template merupakan basis template yang akan digunakan untuk semua template yang akan kita gunakan. Hal ini
sangat berguna karena mengurangi penulisan kode berulang dan menjaga konsistensi template.
https://drive.google.com/drive/u/2/folders/1xreaOjQ47JgwdSj41JKwQM9ISVyOubA3
https://drive.google.com/drive/u/2/folders/1xreaOjQ47JgwdSj41JKwQM9ISVyOubA3
urlpatterns = [
path('admin/', admin.site.urls),
Kemudian buat file urls di direktori data_mahasiswa, untuk mengatur URL khusus untuk aplikasi data_mahasiswa.
urlpatterns = [
path('', views.index, name='index'),
]
Coba buka http://127.0.0.1:8000/ dan lihat hasilnya:
class MahasiswaForm(forms.ModelForm):
class Meta:
model = DataMahasiswa
fields = ('nama', 'nim', 'tempat_lahir', 'tanggal_lahir',
'jenis_kelamin', 'no_hp', 'alamat',)
widgets = {'tanggal_lahir':
forms.DateInput(format='%d/%m/%Y',attrs={'class': 'datepicker'})}
Untuk mengirimkan forms tersebut ke templates, kita perlu mendefinisikannya melalui file views.py, tambahkan kode:
def tambah_mahasiswa(request):
if request.method == 'POST':
form = MahasiswaForm(request.POST)
if form.is_valid():
form.save()
return redirect('index')
else:
form = MahasiswaForm()
mydata = {}
mydata['form'] = form
return render(request, "add_mhs.html", mydata)
urlpatterns = [
path('', views.index, name='index'),
path('add', views.tambah_mahasiswa, name='add'), #<==tambahkan
Selanjutnya kita buat halaman untuk menambah mahasiswa, buat file add_mhs.html:
https://drive.google.com/drive/u/2/folders/1xreaOjQ47JgwdSj41JKwQM9ISVyOubA3
<div>
<a href="{% url 'add' %}" class="btn btn-primary"role="button">Tambah
Mahasiswa</a>
</div>
Coba buka http://127.0.0.1:8000/ dan klik tombol “Tambah”, hasilnya:
mydata = {}
mydata['form'] = form
return render(request, "add_mhs.html", mydata)
Jangan lupa menambahkan URL pada data_mahasiswa/urls.py.
urlpatterns = [
path('', views.index, name='index'),
path('add', views.tambah_mahasiswa, name='add'),
path('edit/<int:id>', views.edit_mahasiswa, name='edit'), #<==tambahkan
]
Coba buka http://127.0.0.1:8000/ dan klik tombol “Edit” pada salah satu data, hasilnya:
urlpatterns = [
path('', views.index, name='index'),
path('add', views.tambah_mahasiswa, name='add'),
path('edit/<int:id>', views.edit_mahasiswa, name='edit'),
path('hapus/<int:id>', views.hapus_mahasiswa, name='hapus'), #<==tambahkan
]
Coba buka http://127.0.0.1:8000/ dan klik tombol “Hapus” pada salah satu data, hasilnya:
-Selesai-