Web Programming Python
Web Programming Python
Silabus
• Python programming
• OOP & Introduction to Django
• HTML,CSS programming
• Django Admin
• Database and CRUD Operation
• Create Home Page
• Implementing Bootstrap 5 for styling UI
• Wrapping UP
Python Basic
• IDLE (Integrated Development and Learning)
• Visual Studio Code
• Tipe Data (Integer,Float, Strings)
• Built-in function
• Membuat Function
• Operator Matematika
• Variabel
• List,Tuples,Dictionaries
• Percabangan
• Perulangan
• Object Oriented Programming
Sejarah Python
• Diciptakan Guido van Rossum seorang pria berkebangsaan Belanda
• mulai mengembangkan bahasa pemrograman Python tersebut sejak tahun
1989 di Centrum Wiskunde & Informatica (CWI) dan akhirnya bahasa
pemrograman Python secara resmi dirilis kepada publik pada tahun 1991.
• Nama Python sendiri sebenarnya bukan diambil dari nama ular piton.
• Nama Python tersebut diambil dari sebuah acara humor yang ditayangkan
oleh channel BBC pada tahun 1980-an yang berjudul “Monty Python’s Flying
Circus”
• Pada tahun 1994, akhirnya Python versi 1.0 dirilis kepada publik
https://diskominfosp.lebakkab.go.id/sejarah-singkat-bahasa-pemrograman-python/
Implementasi Python
• Pengembangan Website
• Pengembangan IOT
• Data Mining
• Pengembangan Machine Learning
• Pengembangan game
https://glints.com/id/lowongan/pentingnya-python/#.Y4Oq2XZBzIU
Internal Proses
• Kode python (.py)
• Dicompile menjadi bytecode disimpan di dalam
memory atau dalam file .pyc
• Interpreter melakukan eksekusi bytecode sesuai
OS
IDLE (Integrated Development and Learning)
• Interactive Mode
Tipe Data
https://media.geeksforgeeks.org/wp-content/uploads/20191023173512/Python-data-structure.jpg
Integers
Operator
1. Arithmetic Operators
2. Relational Operators
3. Bitwise Operators
4. Assignment operators
5. Identity operators
6. Membership operators
https://makemeanalyst.com/python-programming/operators-and-expressions/
Arithmetic/Math Operator
https://inderpsingh.blogspot.com/2019/09/PythonTutorial5.html
Bitwise Operators
Assignment operators
Identity operators
Membership operators
Floats
Character String/String
• Sequence of character
• Immutable
Latihan
• Buat program menggunakan console menghitung luas segitiga dengan alas dan tinggi
diinput
• Buat program menggunakan Visual Studio Code untuk console menghitung luas
persegipanjang : luas = panjang * lebar
Built-in Function
https://docs.python.org/3.11/library/functions.html
Built-in Function
# len()
nama = 'Denny Chandra'
print("Panjang string",len(nama))
#filter
umur = [5, 12, 17, 18, 24, 32]
def myFunc(x):
if x < 18:
return False
else:
return True
dewasa = filter(myFunc, umur)
print("kategori dewasa : ")
for x in dewasa:
print(x)
Methods
• Methods = function di dalam kelas
https://blog.devgenius.io/python-string-operations-f8eeabf8eb71
Built-in Methods
https://blog.devgenius.io/python-string-operations-f8eeabf8eb71
Built-in Methods
#string method
nama = " denny chandra "
print("upper",nama.upper())
print("capitalize",nama.capitalize())
print("title",nama.title())
value = "100"
print("isdigit",value.isdigit())
print("isaplha","abcdef".isalpha())
https://blog.devgenius.io/python-string-operations-f8eeabf8eb71
Modules
• Modul Python adalah file yang berisi definisi dan statemen Python.
• Sebuah modul dapat mendefinisikan fungsi, kelas, dan variabel.
• Modul juga dapat menyertakan kode yang dapat dijalankan.
• Pengelompokan kode terkait ke dalam modul membuat kode lebih mudah dipahami dan
digunakan.
• Itu juga membuat kode terorganisir secara logis.
https://blog.devgenius.io/python-string-operations-f8eeabf8eb71
Contoh menggunakan Modules : array
• Modul ini mendefinisikan tipe objek yang secara ringkas dapat mewakili
array nilai dasar: characters, integers, angka floating point.
• Array sangat mirip dengan lists, kecuali bahwa jenis objek yang disimpan
di dalamnya dibatasi.
• Tipe ditentukan pada waktu pembuatan objek dengan menggunakan
kode tipe
from array import array
myarray = array('i',[5,6,7,2,3,5])
print(myarray)
https://blog.devgenius.io/python-string-operations-f8eeabf8eb71
Tipe Pada Array
https://blog.devgenius.io/python-string-operations-f8eeabf8eb71
Membuat Modul
# A simple module, calc.py
"""add x,y."""
def add(x, y):
return (x+y)
"""subtract x,y."""
def subtract(x, y):
return (x-y)
#test_calc.py
# importing module calc.py
import calc
print(calc.add(10, 2))
https://blog.devgenius.io/python-string-operations-f8eeabf8eb71
Package
• Python memungkinkan untuk merangkum beberapa modul dalam satu package.
• Merupakan best practice jika modul-modul ini disatukan secara tematis.
• Berbeda dengan modul, package dapat berisi sejumlah package lain, yang dapat
berisi modul atau package.
• Untuk membuat package, subfolder harus dibuat dalam directory
• Nama folder harus sesuai dengan nama package
• Folder ini dapat berisi file program bernama __init__.py
• File ini berisi kode inisialisasi yang dieksekusi sekali ketika package diimpor.
https://blog.devgenius.io/python-string-operations-f8eeabf8eb71
Package
https://blog.devgenius.io/python-string-operations-f8eeabf8eb71
Lists
• Digunakan untuk ordered sequence of elements
• Singkatnya, list ini untuk membantu menyimpan data terkait dan
melakukan operasi yang sama pada beberapa nilai sekaligus.
• Tidak seperti string, lists sifatnya mutable (bisa berubah)
my_list = [1, 2, 3]
my_list2 = ["a", "b", "c"]
my_list3 = ["4",2, "book", 5]
alpha_list = list((1,2,3))
print(alpha_list)
https://blog.devgenius.io/python-string-operations-f8eeabf8eb71
Lists
https://idkuu.com/list-1-2-3-4-if-list-2-0-printlist
Lists
my_list = [1, 3, 4,2]
my_list.append(5)
print(my_list)
my_list.reverse()
print(my_list)
my_list.sort()
print(my_list)
my_list.sort(reverse=True)
print(my_list)
#combine lists
my_list2 = ["a", "b", "c"]
combo_list = my_list + my_list2
print(combo_list)
combo_list.sort()
https://idkuu.com/list-1-2-3-4-if-list-2-0-printlist
Tuple
• Digunakan untuk ordered sequence of elements
• Singkatnya, list ini untuk membantu menyimpan data terkait dan
melakukan operasi yang sama pada beberapa nilai sekaligus.
• Tidak seperti lists, tuple sifatnya immutable (tidak bisa berubah)
• Operasinya lebih cepat dari lists
https://blog.devgenius.io/python-string-operations-f8eeabf8eb71
Tuple
my_tupple = (0,1,2,3,4,5,6,7,8,9,10)
print(my_tupple)
print(my_tupple[0])
print(my_tupple[0:3])
print(my_tupple[0:10:2])
https://blog.devgenius.io/python-string-operations-f8eeabf8eb71
Dictionaries
• Dictionaries menyimpan indeks dengan kunci yang dipetakan
ke nilai tertentu.
• Sifatnya mutable
new_dict = {
"brand": "Honda",
"model": "Civic",
"year": 1995
}
print(new_dict)
new_dict["year"] = 2000
print(new_dict)
#menampilkan berdasarkan key
print(new_dict["brand"])
https://blog.devgenius.io/python-string-operations-f8eeabf8eb71
Conditional
• If
• Elif
• If Else
• If Not
nilai = 50
#if
if nilai > 60:
print("lulus")
#elif, utk kondisi lain
elif nilai == 60:
print("remedial")
#jika tidak ada di kondisi diatas
else:
print("sampai jumpa di semester pendek")
new_list = [1, 2, 3, 4]
x = 1
if x not in new_list:
print("'x' bukan di list, so this is True!")
https://blog.devgenius.io/python-string-operations-f8eeabf8eb71
Switch Case?
• Tidak ada bentuk switch case
• Alternati menggunakan Dictionary Mapping
# This code runs only in python 3.10 or above versions
def number_to_string(argument):
match argument:
case 0:
return "zero"
case 1:
return "one"
case 2:
return "two"
case default:
return "something"
result = number_to_string(0)
print(result)
https://blog.devgenius.io/python-string-operations-f8eeabf8eb71
Loops
• while
# while loop
count = 0
while (count < 3):
count = count + 1
print("Hello Geek")
a = [1, 2, 3, 4]
while a:
print(a.pop())
else:
print("done")
https://blog.devgenius.io/python-string-operations-f8eeabf8eb71
Contoh Lain (while)
• Do-While
while True:
# Code to be executed
user_input = input("Enter 'q' to quit: ")
if user_input == 'q':
break
• While
user_input = input("Enter 'q' to quit: ")
https://blog.devgenius.io/python-string-operations-f8eeabf8eb71
Loops
• for
# Iterating over a list
l = ["a", "b", "c"]
for i in l:
print(i)
#continue
for letter in 'abcdef':
if letter == 'b' or letter == 'd':
continue
print('Current Letter without b,d :', letter)
#break
for letter in 'abcdef':
if letter == 'd':
break
print('Current Letter before break :', letter)
#pass
for letter in 'abcdef':
pass
print('last letter', letter)
https://blog.devgenius.io/python-string-operations-f8eeabf8eb71
Loops
new_dict = {
"brand": "Honda",
"model": "Civic",
"year": 1995
}
https://blog.devgenius.io/python-string-operations-f8eeabf8eb71
Latihan
• Buat program untuk menampilkan bilangan genap dari 2 s.d 100 menggunakan
for dan range (range([start], stop, [step]))
• Buat program untuk menampilkan bilangan ganjil dari 99 s.d 1
https://blog.devgenius.io/python-string-operations-f8eeabf8eb71
OOP
• Hampir semua elemen di Python adalah Object
• Class = blue print untuk membuat object
• Object = instansiasi/perwujudan dari Class
https://blog.devgenius.io/python-string-operations-f8eeabf8eb71
OOP – membuat class
#person.py
class Person(object):
def __init__(self,nama,alamat):
self.nama = nama
self.alamat = alamat
def tampil(self):
print('nama = ',self.nama,'alamat = ',self.alamat)
https://blog.devgenius.io/python-string-operations-f8eeabf8eb71
OOP – membuat object
#test_person.py
person = Person("denny","bandung")
person.tampil()
https://blog.devgenius.io/python-string-operations-f8eeabf8eb71
OOP – membuat subclass
#siswa.py
from person import Person
class Siswa(Person):
def __init__(self, nama, alamat,nim):
super().__init__(nama, alamat)
self.nim = nim
def tampil(self):
print('nama = ',self.nama,'alamat = ',self.alamat,'nim = ',self.nim)
https://blog.devgenius.io/python-string-operations-f8eeabf8eb71
OOP – membuat object dari subclass
#test_siswa.py
siswa = Siswa("denny","bandung","12345")
siswa.tampil()
https://blog.devgenius.io/python-string-operations-f8eeabf8eb71
Latihan
• Buat class : Vehicle dengan property make,model,year dan 1 function
start_engine.function start_engine melakukan print di console untuk menampilkan
propertynya
• Buat class Car extends Vehicle, definisikan ulang function start_engine
• Buat class MotorCycle extends Vehicle, definisikan ulang function start_engine
• Buat object dari Car dan Motorcycle kemudian panggil function start_engine
Tanya Jawab, diskusi
https://p92.hu/techdetails/html-css-and-javascript
HTML,CSS, JavaScript
Istilah Pada Web
• Halaman web (web page)
Halaman yang digunakan untuk menampilkan informasi-informasi yang
terdapat di web.
• Situs web (web site)
Sekumpulan halaman web milik seseorang, perusahaan atau instansi yang
dikumpulkan dan diletakkan dalam web server.
• Homepage
Istilah untuk menyebut halaman pertama yang akan muncul jika sebuah
situs web diakses.
Istilah Pada Web
• Hyperlink atau Link
Penghubung antar halaman web.
• URL (Uniform Resource Locator)
Alamat suatu dokumen atau situs web yang bersifat unik dan khas, contoh :
• http://www.google.com
• http://103.134.152.1
• https://telkompcc.co.id/neo
Arsitektur Client-Server
Teknologi Web Client - Server
• Teknologi Web Pada Sisi Client
Pemrosesan kode program dilakukan di client.
Contoh : JavaScript,TypeScript, Angular, ReactJS, VueJS
• Teknologi Web Pada Sisi Server
Pemrosesan kode program dilakukan di server.
Contoh : PHP, JSP, ASP, NodeJS,Python,Java Servlet
HTML (Hypertext Markup Language)
• HTML Merupakan bahasa standard yang di gunakan untuk membuat
dokumen web .
• Kemampuan HTML :
• Membuat tampilan dari halaman web.
• Membuat form.
• Menambahkan objek-objek seperti gambar, audio, video, animasi, dll.
Tag HTML
• Tag adalah kode-kode yang digunakan untuk men-setting dokumen web.
• Nama tag ditulis di dalam tanda “<” dan “>” dan untuk tag penutup
ditambahkan tanda “/”.
• Boleh ditulis dengan huruf besar maupun kecil.
• Digunakan sepasang, contoh : <form> dan </form>.
• Ada tag yang tidak perlu sepasang, contoh : <br/>, <hr/>, <img/>, dll.
Struktur HTML
<!DOCTYPE html>
<html lang="en">
<head>
<title>Title</title>
<meta name="Keywords" content=""/>
<meta name="Description" content=""/>
<link rel="icon" href="" type="image/x-
icon"/>
</head>
<body>
<div>Hello World</div>
</body>
</html>
Struktur HTML
• Tag <html>…</html> berfungsi untuk menyatakan bahwa dokumen
tersebut adalah dokumen HTML.
• Tag <head>…</head> berisi kode-kode untuk menuliskan
keterangan/informasi tentang dokumen HTML tersebut.
• Tag <title>…</title> digunakan untuk membuat judul halaman Web (web
page).
• Tag <body>…</body> berisi tag-tag untuk isi atau layout tampilan
halaman web.
• Tag <meta> mendefinisikan metadata tentang dokumen HTML.
Metadata adalah data (informasi) tentang data.
CSS (Cascading Style Sheet)
• CSS adalah kumpulan format yang digunakan untuk mengatur tampilan
atau isi dari sebuah halaman web menjadi lebih fleksibel.
• Elemen dasar CSS :
1. Selector
Adalah tag/elemen normal pada HTML
2. Deklarasi
Adalah satu atau beberapa perintah/nilai dari CSS yang menunjukkan
type/bentuk yang diaplikasikan pada selector.
Pengkodean CSS
• Inline style • Internal style
<div style="font-family: verdana; <head>
font-size: 12px"> <style type="text/css">
Hello World div { font-family: verdana; font-size:
</div> 20px }
body { background-color: yellow }
</style>
</head>
Pengkodean CSS
• Eksternal style
<head>
<link
href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.
css" rel="stylesheet" integrity="sha384-
EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLA
SjC" crossorigin="anonymous">
</head>
https://getbootstrap.com/docs/5.0/getting-started/introduction/
Selector CSS
• Class menggunakan titik
.embedded{
font-size: 20px;
color: red;
}
• Id menggunakan #
#div1{
font-size: 20px;
color: green;
}
JavaScript
• JavaScript diciptakan oleh Brendan Eich pada tahun 1995, dan menjadi standar ECMA
pada tahun 1997.
• ECMA-262 adalah nama resmi dari standar. ECMAScript adalah nama resmi dari bahasa
tersebut.
• TypeScript adalah strongly typed programming language yang dibuat diatas JavaScript.
Library/Framework pada Front End
• JQuery = Library JavaScript
• BootStrap = Framework HTML, CSS, Javascript
• Angular = Framework JavaScript
• ReactJS = Library JavaScript
• VueJS = Framework JavaScript
• Dan masih banyak lagi yang lainnya
https://brytdesigns.com/html-css-javascript-whats-the-difference
Tugas
• Buat 3 buah halaman html dalam 1 folder
• index.html
• about.html
• contact.html
• Tambahkan style (slide 67)
• Buat navigasi dari index.html ke about.html dan ke contact.html dan sebaliknya
• Buat menjadi halaman profile masing-masing.
• index.html adalah halaman utama
• about.html mendeskripsikan dirimu
• contact.html adalah kontakmu
Django Introduction & MVT Pattern
Django
• Django adalah framework web open source gratis untuk membangun Aplikasi web
berbasis Python yang modern.
• Django membantu developer dengan cepat dalam membangun aplikasi web dengan
mengabstraksikan banyak pekerjaan yang berulang dalam membangun situs web,
seperti menghubungkan ke database, menangani keamanan, mengaktifkan otentikasi
pengguna, membuat rute URL,menampilkan konten pada halaman melalui template
dan form,
• Mendukung banyak basis data dan menyiapkan antarmuka admin.
• Dengan Django maka developer akan fokus kepada fungsional aplikasi daripada
mengerjakan hal yang berulang-ulang dalam membuat web yang standar
Django
• Django merupakan salah satu framework yang banyak digunakan perusahaan besar
seperti Instagram, Pinterest, Mozilla dan National Geographic, DropBox dan lainnya.
• Django sangat mudah untuk digunakan oleh start up untuk membangun sebuah project
https://www.gamelab.id/news/810-7-website-terkenal-yang-dibuat-dengan-python-
django#:~:text=django%20lebih%20dulu.-
,Pengenalan%20Django,dan%20cepat%20untuk%20melakukan%20pengembangan.
The Power Of Django
• Object-relational mapper
• Automatic admin interface
• Robust template system
• Quick internationalization
Instalasi Django
• Menggunakan command prompt ketik : pip (untuk mac pip3)
• pip adalah package manager untuk python package
• pip sudah otomatis ada di dalam python versi 3.4 ke atas
Instalasi Django
• Menggunakan command prompt ketik : pip install Django==4.1.3
• Kemudian cek versi django yang terinstall
Django MVT
• MVT (Model View Template) adalah software design pattern.
• Ada tiga komponen penting yaitu Model, View dan Template.
• Model membantu menangani database, Template menangani UI (User Interface) dan
View digunakan untuk menangani proses bisnis dan menghubungkan antara model dan
template
https://www.javatpoint.com/django-mvt
Django MVT
https://www.javatpoint.com/django-mvt
Membuat Project
• Buat folder di drive c atau drive lain misal c:\projectdjango
• Klik kanan di c , New -> Folder
urlpatterns = [
path('admin/', admin.site.urls),
path('',bookView.home)
]
Membuat halaman Home Page
• Buka file views.py di folder book
def about(request):
return HttpResponse('<h1>Welcome to About Page</h1>')
Latihan : membuat Templates (HTML) untuk halaman about/
• Buat file about.html di dalam folder book/templates
• Isi about.html dengan html seperti home.html, ubah isinya
• Ubah book/views.py supaya method about me-render about.html
Passing data ke template
• Buka file book/views.py
from django.shortcuts import render
from django.http import HttpResponse
def about(request):
return render(request,'about.html')
Passing data ke template
• Buat file book/templates/home.html
<!DOCTYPE html>
<html lang="en">
<head>
<title>Movies App</title>
<meta name="description" content="Aplikasi BookReview"/>
<meta name="keywords" content="book review,katalog buku"/>
</head>
<body>
<h1>Welcome to Home Page {{ name }}</h1>
<div>Konten disini</div>
</body>
</html>
Latihan Passing data ke template about
Membuat Hyperlink
• Buka file bookreviews/urls.py
urlpatterns = [
path('admin/', admin.site.urls),
path('',bookView.home,name='home'),
path('about/',bookView.about,name='about')
]
Membuat Hyperlink
• Buka file book/templates/home.html dan about.html
• Beri potongan kode berikut setelah <body>
<a href="{% url 'home' %}">Home</a>
<a href="{% url 'about' %}">About</a>
Menambahkan bootstrap di templates
• Ke alamat https://getbootstrap.com/
• Klik Icon disk sebelah kanan
Menambahkan bootstrap di templates
• Paste di templates home.html dan about.html
Menambahkan bootstrap di templates
• Tambahkan elemen <div class=“container”> setelah body
<body>
<div class="container">
<a href="{% url 'home' %}">Home</a>
<a href="{% url 'about' %}">About</a>
<h1>Welcome to Home Page {{ name }}</h1>
<div>Konten disini</div>
</div>
</body>
Menambahkan bootstrap di templates
Menambahkan form search di HomePage
• Menggunakan VSCode buka book/templates/home.html
<body>
<div class="container">
<a href="{% url 'home' %}">Home</a>
<a href="{% url 'about' %}">About</a>
<form action="">
<div class="mb-3">
<label class="form-label">Cari Buku:</label>
<input type="text" name="judul" class="form-control" />
</div>
<button type="submit" class="btn btn-primary">Search</button>
</form>
</div>
</body>
Menambahkan form search di HomePage
Menambahkan form search di HomePage
• Menggunakan VSCode buka book/views.py
from django.shortcuts import render
from django.http import HttpResponse
def about(request):
return render(request,'about.html',{'appName' : 'BookReview'})
Menambahkan form search di HomePage
• Menggunakan VSCode buka book/templates/home.html
<div class="container">
<a href="{% url 'home' %}">Home</a>
<a href="{% url 'about' %}">About</a>
<form action="">
<div class="mb-3">
<label class="form-label">Cari Buku:</label>
<input type="text" name="judul" class="form-control" />
</div>
<button type="submit" class="btn btn-primary">Search</button>
</form>
{% if searchJudul %}
Pencarian untuk <strong>{{ searchJudul }}</strong>
{% endif %}
</div>
Menambahkan form search di HomePage
Referensi Django Template Language
• https://docs.djangoproject.com/en/4.1/ref/templates/builtins/
Resume command
• python –m django startproject bookreviews (untuk membuat project)
• python manage.py runserver (untuk menjalankan project)
• python manage.py startapp book (untuk membuat app)
Model
• Membuat model Buku
• Manage migrations
• Mengakses Django admin
• Mengkonfigurasi gambar
• Menyimpan gambar (upload)
• Menambah model di admin
Model
• Model adalah object yang dipetakan ke database
• Ketika membuat model, Django melakukan eksekusi SQL untuk membuat
tabel yang sesuai dalam database tanpa kita harus menulis satu baris pun
dari SQL
Membuat Model Buku
• Buka menggunakan VSCode book/models.py
from django.db import models
https://www.javatpoint.com/django-model
Referensi Django Model
• https://docs.djangoproject.com/en/4.1/ref/models/
Instalasi Pillow (library Image)
• Pillow adalah library untuk melakukan image processing
• Pada command Prompt ketik : pip install pillow
Managing Migrations
• Migrations bertujuan untuk men-generate skema database
• Perintah migrate akan membuat database berdasarkan default setting
• Ketik : python manage.py migrate
Managing Migrations
• Membuat migrations untuk Book
• Ketik : python manage.py makemigrations
Managing Migrations
• Jalankan migrations
• Ketik : python manage.py migrate
Managing Migrations
• Jadi setiap penambahan model harus melakukan command
• python manage.py makemigrations
• python manage.py migrate
Mengakses Django admin
• Alamat admin sudah definisikan di awal (default) di bookreviews/url.py
urlpatterns = [
path('admin/', admin.site.urls),
path('',bookView.home,name='home'),
path('about/',bookView.about,name='about')
]
urlpatterns += static(settings.MEDIA_URL,
document_root=settings.MEDIA_ROOT)
Menambahkan model Book ke admin
• Buka menggunakan VSCode file : book/admin.py
from django.contrib import admin
from .models import Book
• Instalasi ini hanya dilakukan sekali di komputer, kecuali jika ingin update
• pip install Django==4.1.3 (untuk install Django)
• pip install pillow (untuk install library pillow)
Troubelshooting
• Command pyton atau py tidak dikenali, pastikan ketika instalasi sepert ini:
Troubelshooting
• Command pip tidak dikenali, bisa dengan custom install seperti gambar dibawah
VSCode Extension: SQLite
• Untuk melihat isi dari db.sqlite3 maka bisa menggunakan extension SQLite
VSCode Extension: SQLite
</ul>
</div>
</div>
</nav>
<div class="container">
{% block content %}
{% endblock content %}
</div>
</body>
</html>
Masukkan base template ke setiap halaman (home,about,detail)
• Ketik paling atas
{% extends 'base.html' %}
{% block content %}
{% extends 'base.html' %}
{% block content %}
<div class="card">
<img alt="" class="card-img-top" src="{{ book.gambar.url }}" />
<div class="card-body">
<h5 class="card-title fw-bold">
{{ book.judul }} | {{ book.pengarang }} | {{ book.tanggal_rilis|date:"d-m-Y" }}
</h5>
<p class="card-text">
{{ book.sinopsis }}
<br/>
{{ book.isbn }} | {{ book.jumlah_halaman }} | {{ book.publisher.nama }}
</p>
</div>
</div>
{% endblock content %}
Hasil implementasi base template
Latihan mini project
• Aplikasi Kantin Sekolah
• Kantin
• nama (input text)
• telpon (input telpon)
• Makanan
• nama (input text)
• harga (input int)
• gambar (input text)
• Stok (input int)
• tersedia (radio button [Tersedia,Tidak Tersedia]
• Kantin ForeignKey(Kantin,on_delete=models.CASCADE)
Latihan mini project
• Aplikasi Kantin Sekolah
• Halaman admin CRUD kantin,makanan
• Halaman Home menampilkan makanan kantin bisa search
• Halaman detail adalah detail dari makanan
Langkah-langkah
1. python –m django startproject appkantin
urlpatterns = [
path('admin/', admin.site.urls),
]
urlpatterns += static(settings.MEDIA_URL,document_root=settings.MEDIA_ROOT)
Langkah-langkah
17. Register model di makanan/admin.py
from django.contrib import admin
from .models import Kantin
from .models import Makanan
# Register your models here.
admin.site.register(Kantin)
admin.site.register(Makanan)
Langkah-langkah
18. Login (pastikan server jalan, jika tidak jalankan di terminal VSCode :
python manage.py runserver). CRUD kantin, makanan sudah selesai.
Membuat View di Home
19. Membuat view di makanan/views.py
from django.shortcuts import render
from django.http import HttpResponse
from .models import Makanan
from django.shortcuts import get_object_or_404
def detail(request,makanan_id):
makanan = get_object_or_404(Makanan,pk=makanan_id)
return render(request,'detail.html',{'makanan' : makanan})
Langkah-langkah
20. Siapkan url (appkantin/urls.py)
from django.contrib import admin
from django.urls import path
from django.conf.urls.static import static
from django.conf import settings
from makanan import views as makananView
urlpatterns = [
path('admin/', admin.site.urls),
path('',makananView.home,name='home'),
path('makanan/<int:makanan_id>', makananView.detail,
name='detail')
]
urlpatterns +=
static(settings.MEDIA_URL,document_root=settings.MEDIA_ROOT)
Langkah-langkah
21. Seting template (appkantin/settings.py)
Langkah-langkah
22. Buat template untuk base.html,home.html dan detail.html (File
kosong dulu)
Langkah-langkah
23. Buat template untuk base.html
• Copy dari base.html di project bookreviews
• Sesuaikan
Langkah-langkah
24. Buat template untuk home.html
• Copy dari home.html di project bookreviews
• Sesuaikan
Langkah-langkah
25. Buat template untuk detail.html
• Copy dari detai.html di project bookreviews
• Sesuaikan
Materi Tambahan (static file) pada project (bookreviews)
• Menambahkan file statis (bisa gambar,css,javascript,pdf)
• Misal akan menambahkan icon dari :
https://www.flaticon.com/free-icon/open-
book_81467?related_id=81467&origin=pack
• Setelah download nama filenya ‘open-book.png’
• Buat folder di dalam bookreviews (static > images)
Materi Tambahan (static file)
• Letakkan file ‘open-book.png’ di dalam folder images