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

No comments:

Post a Comment