Tampilkan postingan dengan label django. Tampilkan semua postingan
Tampilkan postingan dengan label django. Tampilkan semua postingan

Senin, 12 Juli 2021

Membuat Laporan Dalam File CSV Pada Django

Isi Konten

Pengertian Laporan

Bahan-bahan yang Diperlukan

Laporan dalam File CSV

Proses Pembuatan

Tips dan trik tambahan

Artikel ini menjelaskan cara pembuatan laporan dalam bentuk csv. Pada beberapa projek,laporan merupakan hal yang wajib ada. Apalagi kalau sudah pada tahap pengolahan data dan penganalisaan data untuk keperluan dokumentasi atau membuat target.

Dalam django kita memang sangatlah bisa merepresentsikan data tersebut dalam bentuk halaman web. Tetapi ada sebagian data yang harus benar-benar diolah dan dijadikan file csv atau pdf untuk keperluan dokumentasi maupun pem-backupan data.

Pengertian Laporan

Laporan adalah suatu bentuk penyampaian berita, keterangan, pemberitahuan ataupun pertanggung jawaban baik secara lisan maupun secara tertulis dari bawahan kepada atasan. Salah satu cara pelaksanaan komunikasi dari pihak yang satu kepada pihak yang lainnya.

Bahan-bahan yang Diperlukan

Django 3.2

Project Api

Console atau Command Prompt

TextEditor

Secangkir kopi atau teh atau coklat panas

Laporan dalam File CSV

CSV merupakan singkatan dari comma-separated value adalah file yang berbentuk text yang menggunakan koma untuk memisahkan nilai-nilainya. Setiap baris file biasanya adalah rekaman data.

File csv biasanya diolah kembali menggunakan excel yang merupakan pengolahan data dalam bentuk angka.

Bagaimana cara membuatnya pada django? Disini saya membuat dua cara yang mudah untuk membuatnya.

Proses Pembuatan

Pada proses ini saya menggunakan template django untuk membuat laporan ini, sebelumnya kita harus membuat project dan applikasi api yang akan kita buatkan menjadi laporan dalam bentuk csv. Setelah selesai membuatnya kita harus membuat

 suatu fungsi pada file views di folder api dengan menambahkan kode berikut.


....

from django.http import HttpResponse

from django.template import loader


@method_decorator(csrf_exempt, name='dispatch')


class ShoppingCart(View):

......



def csv_report(request):

    # Create the HttpResponse object with the appropriate CSV header.

    data=CartItem.objects.all()

    response = HttpResponse(

        content_type='text/csv',

        headers={'Content-Disposition': 'attachment; filename="somefilename.csv"'},

    )

    t = loader.get_template('template_csv.txt')

    c = {'data': data}

    response.write(t.render(c))

    return response

fungsi csv_report akan membuat file somefile.csv dan memuat template template_csv.txt yang akan memodifikasi tampilan laporan yang dibuat.

Bila sudah selesai memodifikasi file tersebut,kita akan mengubah file urls.py dengan menambahkan kode ini untuk digunakan pada url yang akan mendownload laporannya.

path ('csvreport/',views.csv_report,name='csvreport'),

Kemudian kita buat templatenya di folder templates dengan nama file template_csv.txt dengan isi filenya


Informasi Penjualan Produk


"Nama Produk","Harga","Qty"

{% for row in data %}"{{ row.product_name|addslashes }}", {{ row.product_price|addslashes }}, {{ row.product_quantity|addslashes }}

{% endfor %}

dibuat oleh yusuf abdulloh


Jalankan server django dengan perintah

python manage.py runserver

Buka browser kamu lalu pergi ke url localhost:8000/csvreport/

maka kamu akan melihat popup untuk mendownload file yang bernama somefile.csv. Downloadlah file tersebut lalu buka dengan applikasi excel maka tampilanya akan seperti ini. File somefile.csv menampilkan data yang ada pada tabel ChartItem di database api.

Tips dan trik tambahan

#Modifikasilah namafile csvmu dengan nama yang kamu inginlan tetapi biasanya menggunakan nama sesuai tanggal laporan tersebut dibuat.

#Ganti tampilan csv file dengan mengedit file template_csv.txt pada folder templates.

Semoga berhasil

Untuk melihat Daftar Isi Pemrograman Python lainya.

sumber wiki dan django

Rabu, 07 Juli 2021

Membuat REST API Pada Django


Sebelum kita membuat REST API pada Django Framework,baiknya mengetahui dulu pengertian dari REST API itu sendiri. Agar lebih mudah untuk memahami pembuatan dan tujuan project ini.


Pengertian REST API

REST (Representational State Transfer) Adalah sebuah arsitektur sederhana untuk membangun dan menghubungkan dengan layanan-layanan website. Biasanya ini ditampilkan ulang dalam bentuk JSON atau XML atau HTML yang bisa diakses,  dimodifikasi dan digunakan ulang oleh siapapun(devloper atau programmer).

API adalah singkatan dari Application Programming Interface. API adalah penerjemah komunikasi antara klien dengan server untuk menyederhanakan implementasi dan perbaikan software.Bisa diartikan juga sebagai sekumpulan perintah, fungsi, serta protokol yang dapat digunakan oleh programmer saat membangun perangkat lunak untuk sistem operasi tertentu. Biasanya menggunakan protokol standard HTTP tetapi untuk website atau blog interprise menggunakan HTTPS untuk melakukan operasi GET,POST dan PUT.

REST API memungkinkan para developer dan programmer dalam pengembangan applikasi yang berbasis data tergabung dengan applikasi yang berbeda dengan kebutuhan data yang sama. Seperti dalam pengembangan toko online yang membutuhkan API distributor atau pengirimnya sehingga pelanggan tidak pusing mencari jasa pengirimannya berikut harga dan perkiraan datang paket yang dibeli.Berikut ini cara membuat REST API sederhana yang bisa digunakan untuk semua orang.


Bahan Yang Digunakan

Python3.8

Django3.1

Console atau Command Prompt

Text Editor (Pycharm, Sublime, Notepad++, Vim atau lainya)


Proses Pembuatan Project

Mari kita buat suatu project untuk contoh kasus pembuatan keranjang pada toko online. Dimana keranjang ini bisa diisi oleh siapa saja, diganti ataupun dihapus isinya sesuai dengan keinginannya sendiri. Tetapi bila sudah selesai akan dipindahkan ke keranjang penjualan.

Pertama buat project dan applikasinya dengan menggunakan perintah


$ django-admin startproject project

$ cd project

$ python manage.py startapp api


Setelah mengeksekusi perintah-perintah diatas.Maka struktur project kita akan menjadi seperti ini

Rubahlah pengaturan pada file setting.py dalam folder project. Tambahkan daftar applikasi kita (api) pada baris INSTALLED_APPS.


INSTALLED_APPS = [

    ....

    'api',

]


Kemudian kita akan membuat databasenya pada file models.py di folder api dan menggantinya menjadi kode ini


from django.db import models

class CartItem(models.Model):

    product_name = models.CharField(max_length=200)

    product_price = models.FloatField()

    product_quantity = models.PositiveIntegerField()

    

Setelah memodifikasi file tersebut,kita harus menjalankan perintah


$ python manage.py makemigrations

$ python manage.py migrate


Bila berhasil maka kita akan msndapatkan notifikasi pembuatan tabel-tabel yang diperlukan pada applikasi kita melalui console atau command prompt.

Mari kita buat halaman administrator agar memudahkan dalam melihat perubahan data pada database di applikasi kita.Caranya cukup mudah yakni dengan mengganti isi file admin.py dengan kode dibawah ini


from django.contrib import admin

from .models import CartItem


admin.site.register(CartItem)


Daftarkan akun admin di halaman django admin melalui console atau command prompt dengan perintah


$ python manage.py createsuperuser


Lalu masukan nama, email dan passwordnya dengan benar.Untuk menjalankan applikasi kita jalankan perintah


$ python manage.py runserver


dengan mengakses url localhost:8000/admin maka akan tampil halaman login untuk masuk ke halaman sdministrasi django. Masukan nama dan password yang kita buat untuk akun admin tadi untuk melihat mengubah dan menghapus data di database applikasi kita.


Pembuatan REST API

Pertama kita akan menuliskan data pada keranjang. Sedangkan untuk yang lainya juga akan saya buat di satu artikel ini. Agar bisa langsung diterapkan pada project yang sedang dikerjakan. Operasi CRUD untuk REST API pada Django tambahan lainya yakni operasi Pencarian Data API dengan membuat fungsi-fungsi pada views yang digunakan untuk mengekseskusi perintah yang berkaitan dengan operasi-operasi yang ingin digunakan.

Mari kita membuat langkah pertama yakni menuliskan data pada keranjang.Dengan mengubah file views.py pada folder api dengan kode dibawah ini


from django.views import View

from django.http import JsonResponse

import json

from django.utils.decorators import method_decorator

from django.views.decorators.csrf import csrf_exempt

from .models import CartItem


@method_decorator(csrf_exempt, name='dispatch')

class ShoppingCart(View):

    def post(self, request):


        data = json.loads(request.body.decode("utf-8"))

        p_name = data.get('product_name')

        p_price = data.get('product_price')

        p_quantity = data.get('product_quantity')


        product_data = {

            'product_name': p_name,

            'product_price': p_price,

            'product_quantity': p_quantity,

        }


        cart_item = CartItem.objects.create(**product_data)


        data = {

            "message": f"New item added to Cart with id: {cart_item.id}"

        }

        return JsonResponse(data, status=201)

        

Ubahlah isi file urls.py pada folder project dengan kode berikut


from django.contrib import admin

from django.urls import path, include


urlpatterns = [

    path('admin/', admin.site.urls),

    path('', include('api_app.urls')),

]


Buatlah file urls.py pada folder api. Lalu ketiklah kode dibawah ini


from django.urls import path

from .views import ShoppingCart


urlpatterns = [

    path('cart-items/', ShoppingCart.as_view()),

]


Lalu jalankan server kita dengan kode


$ python manage.py runserver


Cara menuliskannya bisa dengan perintah curl di console atau command prompt.


$ curl -X POST -H "Content-Type: application/json" http://127.0.0.1:8000/cart-items/ -d "{\"product_name\":\"name\",\"product_price\":\"41\",\"product_quantity\":\"1\"}"


Bila kode yang kita buat benar maka akan muncul pemberitahuan di console atau command prompt seperti ini


{

    "message": "New item added to Cart with id: 1"

}


Atau bila mengkses url http://127.0.0.1:8000/admin/api_app/cartitem/, akan tampil daftar data yang ada.


B.Membaca Data(Read Data)

Langkah selanjutnya yakni membaca data yang ada pada database. Kita akan membuatnya fungsi untuk membaca sekaligus membuat hasil(bacaan) tersebut menjadi sebuah dictionary yang ditampilkan dalam bentuk JSON. Dengan menambahkan fungsi get() pada views.py


def get(self, request):

        items_count = CartItem.objects.count()

        items = CartItem.objects.all()


        items_data = []

        for item in items:

            items_data.append({

                'product_name': item.product_name,

                'product_price': item.product_price,

                'product_quantity': item.product_quantity,

            })


        data = {

            'items': items_data,

            'count': items_count,

        }


        return JsonResponse(data)


Mari kita coba dengan menggunakan di console atau command prompt dengan perintah ini


$ curl -X GET http://127.0.0.1:8000/cart-items/


Bila berhasil maka akan ada data dalam bentuk JSON pada console ata command prompt kita.


C.Memperbarui Data(Update Data)

Untuk memperbarui data, tentu saja harus ada data yang ingin diperbarui. Dimana data yang akan diperbarui akan ditentukan berdasarkan id yang dimiliki oleh data di database. Untuk melakukanya kita hanya perlu menggunakan 1 baris perintah pada console yakni


$ curl -X PATCH http://127.0.0.1:8000/update-item/1 -d "{\"product_quantity\":\"3\"}"


Tetapi sebelum menggunakan perintah diatas kita harus menambahkan fungsi patch() pada file views.py dan url pada file urls.py di folder api. Dibawah ini merupakan tambahan kode untuk file views.py.


@method_decorator(csrf_exempt, name='dispatch')

class ShoppingCartUpdate(View):


    def patch(self, request, item_id):

        data = json.loads(request.body.decode("utf-8"))

        item = CartItem.objects.get(id=item_id)

        item.product_quantity = data['product_quantity']

        item.save()


        data = {

            'message': f'Item {item_id} has been updated'

        }


        return JsonResponse(data)


Dan yang ini untuk urls.py. Tetapi baiknya mengimport fungsi ShoppingCartUpdate agar tidak terjadi error.

path('update-item/<int:item_id>', ShoppingCartUpdate.as_view()),


D.Menghapus Data(Delete Data)

Untuk penghapusan data hampir sama seperti fungsi patch. Dengan menambahkan fungsi delete pada file views.py.

def delete(self, request, item_id):
        item = CartItem.objects.get(id=item_id)
        item.delete()

        data = {
            'message': f'Item {item_id} has been deleted'
        }

        return JsonResponse(data)

Dengan demikian, menghapus data yang sesuai dengan id pada console dapat menggunakan perintah berikut ini

curl -X "DELETE" http://127.0.0.1:8000/update-item/1




Setelah selesai tutorial ini kamu akan mampu membuat RET API sendiri dan menggunakan data dari API pada console. Ini juga bisa dikembangkan kedalam template html. Agar memudahkan pengguna dalam menggunakan api website kita.
Berikut ini merupakan Daftar Isi Pemrograman Python

Senin, 05 Juli 2021

Membuat URL Cantik Di Django


Pada artikel ini saya akan membuat program Django yang mempunyai fitur url otomatis sesuai dengan judul dan bagus untuk seo (Search Engine Optimization). Dimana ini akan sangatlah penting bagi website yang digunakan untuk mengingat alamat dengan judulnya.

Kita hanya perlu modul slugify yang sudah ada dalam Django framework, kita tinggal mengimport modulnya untuk dipakai. Dengan demikian kita tidak perlu repot menyeting url sendiri karena sudah diatur otomatis sesuai judul artikel yang dibuat.

Contohnya saya membuat artikel yang berjudul Slugify URL Pada Django maka urlnya akan otomatis menjadi www.yusufabdulloh.my.id/slugify-url-pada-django. Asik bukan, dengan menyimpan artikel dengan judul itu maka akan otomatis membuat urlnya cantik dan cukup bagus untuk keperluan seo bukan. Sebelum itu kita harus mengetahui apa itu url yang akan kita buat.


Pengertian URL

URL (Uniform Resource Locator) adalah rangkaian karakter menurut suatu format standar tertentu, yang digunakan untuk menunjukkan alamat suatu sumber seperti dokumen dan gambar di Internet. URL menunjukkan sumber daya Internet atau alamat sebuah halaman web (homepage) yaitu halaman suatu dokumen atau program yang ingin ditampilkan atau digunakan.Secara umum perlu memasukkan tiga informasi untuk menuju ke alamat tertentu, yaitu Protokol, Alamat Server dan Path File.sumber Wikipedia


Bahan Yang Digunakan Pada Project Ini

1.Python3.8

2.Django3.1

3.Text Editor(Pycharm atau Notepad++ atau Sublime atau Vim atau yang lainya)

4.command prompt/console

Sebelum itu pastikan bahwa django sudah terinstall pada perangkat yang digunakan menggunakan perintah pip list pada command prompt atau console. Bila sudah ada Django maka kita sudah siap membuat project Django.


Pembuatan Project Django

Pertama mari kita buat project di django. Buka console kita lalu ketik perintah ini


$ mkdir django_slugify && cd django_slugify

$ pipenv install django

$ pipenv shell

$ django-admin startproject config .

$ python manage.py startapp posts


Rubahlah file models.py pada file posts jadi seperti ini


from django.db import models

from django.utils.text import slugify

class Post(models.Model):

        title = models.CharField(max_length=255)

        slug = models.SlugField(max_length=255, unique=True)

        def save(self, *args, **kwargs):

                if not self.slug:

                        self.slug = slugify(self.title)

                super(Post, self).save(*args, **kwargs)

        def __str__(self):

                return self.title

Kemudian mari kita rubah pengaturan pada file setting.py pada folder django_slugify untuk menambahkan applikasi posts.


INSTALLED_APPS = [

    ...

    'posts.apps.PostsConfig',

]


Untuk melakukan perubahan pada database mari kita jalankan 2 perintah dibawah ini


$ python manage.py makemigrations

$ python manage.py migrate


kemudian tambahkan url pada urls.py file pada folder django_slugify dengan kode dibawah ini agar bisa diakses oleh siapapun.

from posts import views

urlpatterns = [

    path('<slug:slug>/', views.DetailView.as_view(), name='post_detail'),

]


untuk mengeceknya mari kita buat 1 entry pada database dengan menggunakan perintah ini


$ python manage.py shell


from posts.models import Post

post = Post.objects.create(title='Slugify Url pada Django')

post.slug

Bila berhasil maka akan tampil halaman sesuai dengan isi dari file views.py pada folder posts. Dimana isi file views.py seperti ini.


from django.views import generic

from .models import Post

class DetailView(generic.DetailView):

model = Post

template_name= 'details.html'

Jalankanlah applikasimu dengan perintah "python manage.py  runserver", bila berhasil maka kita akan diarahkan ke template detail.html ketika mengakses url localhost:8000/slugify-url-pada-django. Jika tidak berhasil maka akan ada error.

Untuk melihat Daftar Isi Pemrograman Python

Senin, 26 April 2021

Multiple Insert Django

Django memiliki sebuah kode sihir yakni formset untuk membuat formulir baik satu ataupun lebih dalam satu halaman. Sehingga kita tak terlalu membuat perulangan sendiri untuk membuat banyak form dalam sekali klik.

Tetapi sebelum memakai kode formset ini kita mesti membuat file form yang akan disimpan di kode formset kita.

Ubahlah file model.py menjadi

from django.db import models

class Formulir(models.Model):

judul = models.CharField(max_length= 50)

deskripsi = models.CharField(max_length=1000)

Mari kita buat file form.py yang berisi kode dibawah ini.

from django import forms

from .models import Formulir

class FormulirForm(forms.ModelForm):

class Meta:

model = Formulir

fields = '__all__'

Saya akan jelaskan kode diatas ini. 'model' merupakan model yang kita gunakan untuk menyimpan, memodifikasi dan menghapus data yang kita gunakan. sedangkan 'fields' merupakan nama coloum yang digunakan. Saya menggunakan kode '__all__' untuk menggunakan semua column yang ada.

Setelah itu mari kita rubah file view.py menjadi


from django.shortcuts import render

# mengimport FormulirForm

from .forms import FormulirForm

# mengimport formset_factory

from django.forms import formset_factory

def formset_view(request):

    context ={}

    # buat sebuah formset

    FormulirFormSet = formset_factory(FormulirForm) 

    formset = FormulirFormSet()

    # tambahkan array context untuk dirender

    context['formset']= formset 

    return render(request, "index.html", context)


Kemudian buat file index.html pada file templates yang memiliki isi


<h3>Formulir Dengan Formset</h3>

<form method="POST" enctype="multipart/form-data"> 

    {% csrf_token %}

    <table class='table'>

    {{ formset.as_table }}

    </table>

    <input type="submit" value="Masukan Formulir">

</form>



Bila berhasil maka akan tampil tabel formulirnya.

Cara Membuat Multiple Insert

Kita hanya cukup menambahkan kode 'extra=5' untuk menambahkan 5 formulir tersebut dengan mengubah baris ke 9 menjadi


FormulirFormSet = formset_factory(FormulirForm, extra=5) 


Karena kita menginput banyak data dalam sekali klik maka kita membutuhkan kode '{{ formset.management_data }}' pada template index.html.


Setelah tahapan ini selesai maka data yang kita masukan di dalam formulir akan kita simpan ke dalam database kita dengan mengganti file view kita:


from django.shortcuts import render

# mengimport FormulirForm

from .forms import FormulirForm

# mengimport formset_factory

from django.forms import formset_factory

def formset_view(request):

    context ={}

    # buat sebuah formset

    FormulirFormSet = formset_factory(FormulirForm,extra=5)

    if request.method == 'POST':

   formset = FormulirFormSet(request.POST, request.FILES or None)

if formset.is_valid():

for form in formset:

if form.is_valid():

form.save()

else:

formset = FormulirFormSet()

    # tambahkan array context untuk dirender

    context['formset']= formset 

    return render(request, "index.html", context)



Silahkan periksa di halaman admin django, bila semua tahapan ini benar maka data-data  akan tersimpan di database kita.

Minggu, 28 Maret 2021

Menggabungkan Tailwindcss dengan Django

Pernah dengar tool yang keren seperti Tailwindcss? Tapi bingung cara menggunakannya pada project Django? Postingan ini merupakan jawaban dari pertanyaan-pertanyaan tersebut.

1. Solusi Pertama (Tailwindcss CDN)

Cara yang paling sederhana bisa menggunakan cdn Tailwindcss dengan menyertakannya di template atau base yang ingin digunakan dengan Tailwindcss, yakni dengan memasukan kode :

<head>

  ...

  <link href="https://unpkg.com/tailwindcss@^2/dist/tailwind.min.css" rel="stylesheet">

  ...

</head>

 lalu jadilah. Kita bisa menggunakan class Tailwindcss sekarang pada template kita.

 Solusi ini merupakan solusi yang paling cepat dan tepat karena kita sudah bisa memasukan semua css taildwindcss di template yang kita inginkan dengan framework apapun. Ini baik untuk testing tanpa menyentuh bagian produksi sama sekali.

 2. Paket Django-Tailwind

 Untuk cara yang kedua kita bisa menggunakan paket django-tailwind dengan mengikuti instruksi dari project pip dan sedikit mengganti setting di project kita.

 paket django-tailwind akan menghapus class yang tidak terpakai dan tidak memakai Javascript lainya.

 3. Menggunakan Tailwind dan PostCSS

 Cara ini menhgunakan perintah npm dengan isi file pakage json

{

  "name": "django-tailwind",

  "version": "1.0.0",

  "description": "",

  "main": "index.js",

  "scripts": {

    "test": "echo \"Error: no test specified\" && exit 1"

  },

  "author": "",

  "license": "ISC",

  }


Sabtu, 10 Oktober 2020

Membuat login,logout dan session di django

Pada kesempatan ini saya akan membuat tutorial tentang pembuatan login, logout dan session pada django. Saya menggunakan django versi 3 untuk membuatnya sehingga tidak perlu mensetting apapun untuk mengerjakan pekerjaan ini.

Session sangat dibutuhkan ketika kita ingin membuat sebuah dsta yang disimpan tanpa dimasukan ke dalam database karena data ini akan berubah karena penggunanya tidak sama dalam mengisi data ini. Contoh penggunaan dalam keranjang belanja, draft pesan atau jumlah view. Sedangkan login dan logout digunakan untuk autentifikasi dan membuat penggunaan dalam jumlah banyak untuk mengolah data di website sesuai status pengguna sehingga tidak ada penyalahgunaan akun.

Kita tidak perlu membuat models user. Kita hanya perlu mengaksesnya di console dengan membuat perintah createsuperuser untuk membuat admin untuk mengolah data user.

Untuk melihat user yang sedang dijalankan kita bisa mencetaknya di console dengan printah print(request.user).

Cara membuat session pun cukup sederhana kita hanya perlu menginisiasi variabel request.session.

Saya rasa cukup untuk penjelasanya. Bila anda mengalami masalah anda bisa kirim pesan ke halaman facebook yang tertera di halaman kontak.Bila mendapat manfaat dari tulisan yang saya buat anda bisa berdonasi ke no yang ada di halaman kontak.

Dengan ditulisnya artikel ini untuk melengkapi referensi yang cukup untuk membuat website besar.Ini dimaksudkan agar pengguna cukup menggunakan bahasa python yang digunakan oleh framework django. Sehingga memungkinkan untuk menambahnya dengan bahasa javascript atau yang lainnya sehingga membuatnya lebih variatif dan flexible.

Masalah yang penulis hadapi yakni pengunggahan foto yang berupa shell script atau backdoor yang bisa dilakukan oleh cracker. Dengan saran agar server yang digunakan hanya bisa mengeksekusi file ekstensi python sehingga selain ekstensi file itu tak bisa berjalan, atau menggunakan informasi pengguna sehingga meminimalisir pengguna yang tidak bertanggung jawab.

Sekian terimakasih.

Minggu, 04 Oktober 2020

Upload File Django

Mengunggah suatu file merupakan hal yang penting di saat kita membuat dokumentasi atau membuat backup atau hal lainya.

Selain itu upload file ini bertujuan untuk mengirim file tersebut ke publik atau orang atau kelompok tertentu.

Disini kita akan membuat applikasi upload di django dengan melakukan beberapa langkah ini

1. Buat project dan applikasi di command line dengan perintah django-admin dan mengeksekusi manage.py .

2. Ubah settingan di file dan tambahkan settingan file media untuk menyimpan file yang diupload.

3. Konfigurasi file urls untuk mennamabahkan link ke upload.urls

4. Buat file urls pada applikasi dan konfigurasi ke views. Jangan lupa membuat settingan file media dan static.

5. Ubah file views di folder applikasi buat memasukan module form dan hanler.

6. Buat file form.py untuk membuat tampilan dan inputan di halaman web.

7. Buat file handler.py untuk menambahkan file ke folder media juga menyimpannya dengan nama yang anda inginkan.

8. Buat template untuk menampilkan halaman upload, sukses dan juga gagal.

9. Mengeksekusiperintah collectstatic dan migrate sebelum menjalankan server.

Langkah-langkah ini bisa digunakan pada hampir semua versi django untuk upload file sehingga pembaca tidak terlalu lama membuat applikasi ini.

Minggu, 20 September 2020

Membuat Pagination dan Carousel Pada Django

Pada website besar kita tentu memiliki database yang akan ditampilkan dalam bentuk halaman website tersebut. Terkadang dengan sangat banyaknya data yang ingin ditampilkan ini, menjadi masalah karena terlalu banyak. Disini kita memerlukan teknik pagination / membaginya dengan banyak halaman yang menampilkan bagian2 data tersebut sehingga tidak terlalu memanjang dan terlalu berat memuat data tersebut.

Disini kita akan menggunakan modul yanv ada di django ya yakni pagination. Berikut ini cara membuatnya:

1. Load modul di view dan tempatkan kode paginate_by = 4 #berarti halaman tidak lebih dari 4 data, sisanya ada dihalaman berikutnya.

2. Sisipkan kode htmlnya di bagian template yang ingin kita bagi perhalaman.

"

 Page {{ page_obj.number }} of {{ page_obj.paginator.num_pages }}

<div>

<ul class="pagination">

        {% if page_obj.has_previous %}

            <li class='page-item'><a href="?page=1" class='page-link'>&laquo; first</a></li>

            <li class='page-item'><a href="?page={{ page_obj.previous_page_number }}" class='page-link'>previous</a></li>

        {% endif %}


        <li class='page-item'>

        <!--loop for page and change the element by active-->

        {% for i in page_obj.paginator.page_range %}

{% if page_obj.number == i %}

        <li class="page-item active"><a class="page-link">{{ i }} </a></li>

{% else %}

        <li class='page-item'><a href="?page={{ i }}" class="page-link">{{ i }}</a></li>

{% endif %}

    {% endfor %}

        </li>


        {% if page_obj.has_next %}

            <li class='page-item'><a href="?page={{ page_obj.next_page_number }}" class='page-link'>next</a></li>

            <li class='page-item'><a href="?page={{ page_obj.paginator.num_pages }}" class='page-link'>last &raquo;</a></li>

        {% endif %}

    </ul>

</div>

"

Memadukan kode diatas dengan meload boostrap4 anda akan melihat paging yang indah. Cukup mudah bukan, ini sungguh menghemat waktu kita dalam pembuatan kode pagination.

Saya menyarankan untuk membuat refresh data per sekian detik bila memang website anda sangat besar tanpa refresh halaman. Agar data terpantau dengan baik, caranya bisa dengan menggunakan jquery dan ajax. Dengan begitu anda tak perlu repot lagi memikirkan data yang terbaru.