Thursday, May 6, 2021

Belajar Dasar Authentikasi Bawaaan Dari Django

 Siips.. pertama-tama silahkan buat django project yg baru seperti pada postingan ini...
Terus projectnya dikonekin ke postgresql contohnya bisa dilihat disini... atau postingan ini jg bisa...

Siipss... jadi sampai disini dianggap udah punya django yg udah konek ke postgresql... terus pertama-tama kita migrate dl... python manage.py migrate:


terus kita buat superuser dijango:

python manage.py createsuperuser

Klu kita pengen coba didjangonya berarti silahkan run dl.. python manage.py runserver 1234

terus buka localhost:1234/admin


Terus login pake username sm password yg diinput pas createsuperuser:




Naah... jadi dari superuser ini kita bisa liad isi databasenya, bisa add user yg baru, bisa search dkk... 
Sipss.. berikutnya kita bikin template buat nampilin html..






terus bikin folder baru didalam templates (g' bikin jg gpp siih :D)



Terus didalam user_template buat index.html:
Terus kita buat view baru buat ngehandle request dan load htmlnya:


Terus buat urlnya seperti terlihat dibawah:



urls.py ini bakalan nge-routing request2 dari user... isinya seperti terlihat dibawah:


Terakhir konekin user_example.urls ke main project djangonya kyk gini:



Naah klu kita buka http://localhost:1234/
hasilnya:
Dari main urls.py diatas, kita jg nambain /account  tuh... klu yg iut kita buka hasilnya kek gini:

Nah sebenernya handler buat /account itu bawaan dari djangonya seperti terlihat diatas, jadi kita dikasih tau klu ada kyk accounts/login/, accounts/logout, dsb... dan itu semua adalah bawaan dari django hehe...  so misalkan kita buka yang accounts/login:



Naah errornya dibilang g' ada template didalem registration/login.html... so jadi sekalipun ini url bawaan dari django, kita harus ngebuat sendiri templatenya hehehe... :D
So let's create it first...


Isi login.html-nya simpel2 ajjah kyk gini:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title> Login Page </title>
    </head>
    <body>
        <h1> Login </h1>
        <!-- Klu ada error tampilin "Ada error cuy "-->
        {% if form.errors %}
        <p> Ada error cuy </p>
        {% endif %}

        <!-- Klu misalkan user mau akses suatu page tertentu tapi blom login -->
        <!-- 
            tampilin pesan "Silahkan login dl ya" 
            next itu berisi url yg akan diakses oleh user dan itu bawaan dari djangonya
        -->
        {% if next %}
        <p> Silahkan login dl </p>
        {% endif %}

        <!-- 
            Kalu semua pengecekan diatas passs...
            tampilin yg ini:
        -->
        <form method="post" action="{% url 'login' %}">
            {% csrf_token %}
            <p> Username :  {{ form.username }} </p>
            <p> Password :  {{ form.password }} </p>
            <input type="submit" value="login">
            <input type="hidden" name="next" value="{{ next }}">
        </form>
    </body>
</html>

Nah klu kita buka accounts/login/ jadinya kyk gini:


yepsss..... Terus klu kita login pake akun yg dibua dari createsuperuser :

Kita diredirect ke accounts/profile/ yang belom dibuat juga haha.... kita bisa bikin juga kyk yg login ini.. cuman disini pengennya diredirect ajjah ke main page.. jadi tinggal ngisi yg ini ke setting.py:


Terus klu kita login lgi bakalan diredirect ke:


Naah... ntapssss.....  jadi udah bisa redirect ke index.html....

Berikutnya kita bakalan bikin page untuk ngeregister user baru. Pertama-tama bikin templatenya-nya dl: (register.html)

Terus view.py:


source code view:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
from django.shortcuts import render, redirect

from django.contrib.auth.forms import UserCreationForm
from django.contrib.auth import authenticate, login

# Create your views here.
def index(request):
    return render(request, 'user_template/index.html')

def register(request):
    if request.method == 'POST':
        form = UserCreationForm(request.POST)
        if form.is_valid:
            form.save()
            username = form.cleaned_data['username']
            password = form.cleaned_data['password1']
            user = authenticate(username=username, password=password)
            login(request, user)
            return redirect('index')
    else:
        form = UserCreationForm
    
    context = {'form': form}
    return render(request, 'registration/register.html', context)



Terus kita bikin url baru di urls.py:


Terus klu kita buka /register hasilnya:
Naah ini juga pakai form bawaan dari django di UserCreationForm

Terus sebenernya di dalam view.py kita ngesave user yg di register terus langsung dibuat login hehe... :D


heemm.. segini dl ajjah... :V

Belajar Ngekonekin Django ke Postgresql

 Sipss.. pertama-tama silahkan buat project seperti pada postingan ini....

Setelah itu buat database baru di postgresql (atau db yg lama jg boleh ehe)


Sipsss.. setelah itu install psycopg2-binary (ini kyk driver buat postgresql)

pipenv install pyscopg2-binary


Abis install psycopg2-binary tar mncul gini di pipfilenya:

Siipss.. next kita tambahkan informasi db-nya ke file setting django seperti terlihat dibawah:



Naah.. sampe sini udah selese deeeh... buat ngecek g' ada yg error silahkan run servernya:
python manage.py runserver YOUR_PORT


Sipss.. sampai disini sebenernya udah okie.. temen2 udah bisa explore2 yg lain... cuman klu mau lebih bagus... informasi kayk nama db, user, password itu sebaiknya disimpen di .env jadi g' kliatan sama orang2 luar klu misalkan diupload sourcenya ke git atau tempat lain... naah buat ngehandle yg ini, kita install library baru, namanya django-environ... So silahkan diinstall...


Abis itu kita buat file baru .env yg lokasi filenya HARUS sama dengan lokasi settingan file django kyk gini:

Naah setelah itu kita bikin variabel2 di dalam .env-nya kyk gini ajjah:

Terus variabel2 dari .env-nya kita load di setting.py kyk gini:

Setelah itu kita ganti semua variabel2 db sebelumnya :

Naah.. kyk gitu lbih cantik keliatan hehehe.. dan rahasianya terjaga :D

Siipsss... daaah... semoga bermanfaat :-)

Belajar Buat Project Django Baru Menggunakan PIPENV

 Okie.. di postingan kali ini kita akan belajar tentang authentikasi bawaan dari django. So pertama-tama kita bikin virtual envnya dl:
1. Create new folder called "dasarAuthDjango" (ini nama foldernya terserah siih)

2. Masuk ke folder yg barusan dibuat terus execute pipenv shell seperti terlihat pada gambar dibawah:


nah tar ada pipfile klu virtualenvirontmennya udah aktif:
setelah itu kita install django. Silahkan run pipenv install django seperti terlihat dibawah:


Hasilnya:



Naah dari sini kita baru bisa bikin project... so silahkan execute 

django-admin startproject dasarAuth (nama projectnya terserah juga heehe)



Siip... terus masuk ke folder dasarAuth buat create app contohnya: (disini user_example cm contoh)


Terus sebagai catatan, setiap kali kita create app yg baru, kita harus ngedaftarin app tersebut ke list installed_app di django setting sesuai nama appnya. 


sipss.... kyk gini ajjah laaah hehe.... :D
ooeh iya bisa dicoba2 ngerun django dl..





Sipssss.....

Berikut2nya klu kita pengen install library yg baru tinggal pipenv install nama_library...