Django - trakter/Docs GitHub Wiki

Didokumentasi oleh 1337Syndicate.
Kerangka kerja web untuk perfeksionis dengan tenggat waktu.
Django membuatnya lebih mudah untuk membangun aplikasi web yang lebih baik dengan lebih cepat dan dengan lebih sedikit kode.
Mulailah dengan Django!
Apa itu Django?
Django adalah sebuah kerangka kerja full-stack untuk membuat aplikasi web dengan menggunakan bahasa pemrograman python. Yang dimaksud dengan full-stack adalah developer dapat membuat website dengan back-end maupun front-end dari lingkup web developer tersebut ini hanya bisa developer bangun menggunakan Django.
Django adalah kerangka kerja python web tingkat tinggi yang dapat dengan cepat melakukan pengembangan aplikasi dan memiliki desain pragmatis yang bersih. Django dapat membuat proses pengembangan aplikasi menjadi lebih mudah, cepat dan menghemat penggunaan kode.
- Kelebihan
Django ditulis menggunakan bahasa pemrograman python yang menekankan pada keterbacaan kode.
Django sudah menggunakan pendekatan “batteries included” yang artinya Django mempunyai semua hal yang diperlukan untuk mengembangkan sistem secara lengkap serta menyelesaikan tugas-tugas umum dalam pengembangan seperti user authentication, URL routing, database schema migration, dan sebagainya.
Fitur keamanan internal yang disediakan oleh Django framework dapat membantu pihak pengembang untuk melindungi aplikasi mereka dari berbagai macam serangan.
- Kekurangan
Kekurangan Django adalah tidak adanya coding conventions atau gaya penulisan. Dibandingkan bahasa pemrograman lain yang memiliki prinsip dapat diikuti oleh pengembang untuk mengembangkan web. Jadi akan sulit untuk pengembang baru untuk masuk ke dalam tim.
Django framework tidak cocok untuk proyek kecil yang hanya membutuhkan beberapa fungsi dan requirements saja karena Django menggunakan banyak library yang sekali dijalankan akan memanggil banyak kode sehingga itu membutuhkan waktu dan bandwidth yang lumayan besar.
- Menginstal Django framework
- Membuat Django Project
- Mengatur Autentikasi Django
- Membuat Django App
- Mengatur Urls Django Project dan Urls Django App
- Membuat Templates
- Membuat Views Django
- Perulangan Django
- Percabangan Django
- Membuat Models Django
- Register Django
- Membuat Database Django
- Create, Read, Update, Delete



Menginstal django framework...
pip install django
Melakukan instalasi kerangka kerja aplikasi web.

Sebelumnya aku telah menginstal django framework.

Membuat django project...
django-admin startproject Docs
Catatan, Docs merupakan nama dari django project milik kita.


Menjalankan server django...
python manage.py runserver
Kita akan melihat beberapa line yang di output...
Watching for file changes with StatReloader
Performing system checks...
System check identified no issues (0 silenced).
You have 18 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.
Run 'python manage.py migrate' to apply them.
August 07, 2022 - 01:37:10
Django version 4.0, using settings 'Docs.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.
Sekarang server django sedang berjalan, kita bisa melihat halaman django milik kita dengan membuka browser dan mengunjungi link http://127.0.0.1:8000/ dan kita akan melihat tulisan "The install worked successfully! Congratulations!", dengan sebuah roket meluncur.

Selamat... Kita sudah berhasil menginstal dan membuat django project untuk memulai membangun sebuah halaman web.






Menjalankan migrasi...
python manage.py migrate
Django akan melakukan migrasi untuk membawa semua pemindahan tempat yang belum diberlakukan.


Membuat akun django...
python manage.py createsuperuser
Django akan membuat akun untuk pengguna.

Akun pengguna berhasil dibuat.

http://127.0.0.1:8000/admin/login/?next=/admin/


Halaman akun dari django.


Membuat django app...
django-admin startapp DocsApp
Catatan, DocsApp merupakan nama dari django app milik kita.





Menginstal app...
# Application definition
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'DocsApp',
]




Mengatur urls...
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('', include ('DocsApp.urls')),
]






Membuat templates... menjadi kerangka kerja web, django membutuhkan cara yang nyaman untuk menghasilkan HTML secara dinamis. Pendekatan yang paling umum bergantung pada template. Sebuah template berisi bagian statis dari output HTML yang diinginkan serta beberapa sintaks khusus yang menjelaskan bagaimana konten dinamis akan dimasukkan.




<!DOCTYPE html>
<html>
<head>
<title>1337Syndicate | Home</title>
</head>
<body>
<h1>Home</h1>
</body>
</html>

<!DOCTYPE html>
<html>
<head>
<title>1337Syndicate | Docs</title>
</head>
<body>
<h1>Docs</h1>
</body>
</html>

<!DOCTYPE html>
<html>
<head>
<title>1337Syndicate | About</title>
</head>
<body>
<h1>About</h1>
</body>
</html>


Membuat views django...
from django.shortcuts import render
# Create your views here.
def index(request):
return render(request, 'index.html')
def docs(request):
return render(request, 'docs.html')
def about(request):
return render(request, 'about.html')


from django.urls import path
from .import views
urlpatterns = [
path('', views.index, name='index'),
path('index', views.index, name='index'),
path('docs', views.docs, name='docs'),
path('about', views.about, name='about'),
]







from django.shortcuts import render
# Create your views here.
def index(request):
return render(request, 'index.html')
def docs(request):
docs = {
'title': '1337Syndicate | Docs',
'docs': [
'React',
'Django'
'Git',
'MongoDB',
],
}
return render(request, 'docs.html', docs)
def about(request):
return render(request, 'about.html')


Perulangan django...
<!DOCTYPE html>
<html>
<head>
<title>1337Syndicate | Docs</title>
</head>
<body>
<h1>Docs</h1>
<h3>{{ title }}</h3>
<ul>
{% for docs_ in docs %}
<li>{{ docs_ }}</li>
{% endfor %}
</ul>
</body>
</html>




Percabangan django...
<!DOCTYPE html>
<html>
<head>
<title>1337Syndicate | Docs</title>
</head>
<body>
<h1>Docs</h1>
<h3>{{ title }}</h3>
{% if docs %}
<ul>
{% for docs_ in docs %}
<li>{{ docs_ }}</li>
{% endfor %}
</ul>
{% else %}
<p>Halaman Kosong</p>
{% endif %}
</body>
</html>







Membuat models django...
from django.db import models
# Create your models here.
class Docs(models.Model):
title = models.CharField(max_length=37)
docs = models.TextField('Docs')
time = models.DateTimeField('Time')
def __str__(self):
return self.title


Mendaftarkan models django...
from django.contrib import admin
# Register your models here.
from .models import Docs
admin.site.register(Docs)


Membuat migrasi django...
python manage.py makemigrations
Kita mengatakan ke pada django bahwa kita telah membuat beberapa perubahan di model yang telah kita buat (dalam kasus ini, kita telah membuat satu model baru) dan itu kita ingin perubahan disimpan sebagai migrasi.


Menjalankan sqlmigrate untuk mengambil nama perpindahan tempat dan mengembalikan SQL.
python manage.py sqlmigrate DocsApp 0001


Menjalankan migrate... untuk mencari INSTALLED_APPS setelan dan membuat tabel database yang diperlukan dan perpindahan basisdata disertai dengan app.
python manage.py migrate
Django akan melakukan migrasi untuk membawa semua pemindahan tempat yang belum diberlakukan.









Melakukan read...
from django.shortcuts import render
# Create your views here.
from .models import Docs
def index(request):
return render(request, 'index.html')
def docs(request):
docs = {
'title': '1337Syndicate | Docs',
'docs': Docs.objects.all()
}
return render(request, 'docs.html', docs)
def about(request):
return render(request, 'about.html')


<!DOCTYPE html>
<html>
<head>
<title>1337Syndicate | Docs</title>
</head>
<body>
<h1>Docs</h1>
<h3>{{ title }}</h3>
{% if docs %}
<ul>
{% for docs_ in docs %}
<li>{{ docs_.title }}</li>
<p>{{ docs_.docs }}</p>
<h3>{{ docs_.time }}</h3>
{% endfor %}
</ul>
{% else %}
<p>Halaman Kosong</p>
{% endif %}
</body>
</html>









