Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Django Mini Tutorial

363 views

Published on

Pengenalan dan Tutorial singkat Django.

Published in: Technology
  • D0WNL0AD FULL ▶ ▶ ▶ ▶ http://1lite.top/R4FgM0 ◀ ◀ ◀ ◀
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • D0WNL0AD FULL ▶ ▶ ▶ ▶ http://1lite.top/R4FgM0 ◀ ◀ ◀ ◀
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

Django Mini Tutorial

  1. 1. Python WEB DEVELOPMENT FRAMEWORK
  2. 2. Why Python?  Clear and Expressive Syntax  Indentasi harus rapi  Batteries Included  Bisa untuk Object Oriented ataupun Fungsional  3 Compiler Utama:  C (CPython)  Java (Jython)  Iron Python (.NET)  Python Installer Package (PIP) yang mudah digunakan
  3. 3. What are the Batteries?  Meskipun Bahasa pemrograman seharusnya tidak menjadi batasan, namun jika menguasai satu Bahasa pemrograman untuk semua kerjaan cukup menyenangkan juga.  Tersedia Library Python untuk:  Numerical Programming  Scientific Programming  Machine Learning Algorithm  Image Processing  Web Scrapping  Natural Language Processing  Web Development Framework
  4. 4. Python for Scientific
  5. 5. Machine Learning
  6. 6. Web Scrapping
  7. 7. Python NLTK
  8. 8. Web Development
  9. 9. Django DEEP INTRODUCTION TO THE FRAMEWORK
  10. 10. Django is …  Python Web Application Framework, for a perfectionist with deadline  Ridiculously Fast  Fully Loaded  Reassuringly Secure  Exceedingly scalable  Incredibly Versatile  Yang udah make Django:  Disqus, Instagram, National Geographic, NASA, Pinterest, OpenStack, The Guardian, The New York Times
  11. 11. Fully Loaded with….  MVC  MTV (Model, Template, View)  Object Relational Mapper  Automatic Admin Interface  Robust Template  Internationalization  Caching  Validation & CSRF Protection  GeoDjango  Etc, etc, etc ……..
  12. 12. MVC Should be…  Fat Model  Semua logika pengambilan data disentralkan di Model, jangan ditaruh di Controller, apalagi View  Demi keseragaman data  Thin Controller  Hanya mengambil data dari request  Meneruskan ke model  Menampilkan hasil dari model  Dumb View  Cukup menampilkan data, minim sekali logic
  13. 13. Instalasi Django  Online Connected Computer  Install Python  Install PIP  Stand Alone Computer  Install Python  Download Django Package  Install Package  Verify Installation > pip install Django > import Django > print(django.get_version())
  14. 14. Create Project  Set direktori Python dan Python->Scripts ke dalam default path  Karena, kita akan, menggunakan command prompt untuk membuat kerangka project  Setelah berhasil kita akan mendapatkan direktori Django project seperti berikut: > django-admin startproject BlogApp BlogApp/ manage.py BlogApp/ __init__.py settings.py urls.py wsgi.py
  15. 15. Create App  Setiap project Django dapat memiliki beberapa App yang berperan sebagai modul pada project tersebut.  Untuk membuat app, masuk ke dalam direktori project kita, kemudian ketikkan perintah berikut  Agar dapat di-kenali oleh project, masukkan nama aplikasi ke dalam settings.py > python manage.py startapp blog
  16. 16. Add Models  Model adalah class untuk berinteraksi secara langsung dengan basis data.  Django menyediakan class model dengan ORM yang powerful dan mudah diintegrasikan. (IMHO: it’s even better than Rails and Laravel)  Ada 3 model yang akan kita buat untuk latihan ini, yaitu Article, Category, dan Comment  Category bisa memiliki banyak Article  Dan Article bisa memiliki banyak Komentar  Article di tulis oleh seorang User  Sedangkan penulis Category dan Comment tidak terhubung dengan User
  17. 17. Model Scripts from django.db import models from django.contrib.auth.models import User class Category(models.Model): title = models.CharField(max_length=50) description = models.TextField(null=True, blank=True) class Article(models.Model): title = models.CharField(max_length=200) content = models.TextField() category = models.ForeignKey(Category) author = models.ForeignKey(User) class Comment(models.Model): author = models.CharField(max_length=100) content = models.TextField() article = models.ForeignKey(Article, default=1)
  18. 18. Migrate & Run  Selesai merancang model, saatnya generate database script sekalian database-nya  Ketikkan perintah berikut di shell:  Jalankan Django untuk melihat hasilnya > python manage.py makemigrations > python manage.py migrate > python manage.py runserver
  19. 19. Basic Admin  Django menyediakan automatic admin page  Tidak seperti di Yii, Rails, atau Code Igniter yang hanya menyediakan basic Scaffolding, admin page Django benar- benar powerful  Mudah di-customize dan usable  Untuk dapat mengakses halaman admin, buatlah user superadmin terlebih dahulu  Setelah menjalankan server kembali, halaman admin secara default dapat diakses di:  localhost:8000/admin > python manage.py createsuperuser
  20. 20. Admin Page untuk Model  Pada admin.py, ketikkan perintah python berikut: from django.contrib import admin from .models import Category, Article, Comment class CategoryAdmin(admin.ModelAdmin): list_display = ('title', 'description') class ArticleAdmin(admin.ModelAdmin): list_display = ('title', 'category', 'author') class CommentAdmin(admin.ModelAdmin): list_display = ('author', 'content', 'article') admin.site.register(Category, CategoryAdmin) admin.site.register(Article, ArticleAdmin) admin.site.register(Comment, CommentAdmin)
  21. 21. Modifikasi Dikit  Agar semua perintah menjadi Bahasa Indonesia, ubah pilihan Bahasa di settings.py dari “en-us” menjadi “id”  Agar kategori terlihat titlenya di admin Article, override method __unicode__() pada model Category dan model yang lain  Selanjutnya agar nama model familiar dengan Bahasa Indonesia, tambahkan inner class Meta sebagai berikut pada setiap model: class Meta: verbose_name = "Kategori" verbose_name_plural = "List Kategori"
  22. 22. Inline Comment  Akan lebih bagus juga list komentar juga tampil di setiap artikelnya. Caranya gunakan inline admin: class CommentInline(admin.StackedInline): model = Comment extra = 1 class ArticleAdmin(admin.ModelAdmin): ... inlines = [CommentInline]
  23. 23. Number of Comments  Ingin menampilkan informasi tambahan yang belum termasuk dalam attribute, tambahkan saja method baru pada modelnya.  Misalkan kita ingin menampilkan berapa banyak komentar yang telah diberikan pada artikel tersebut. class Article(models.Model): ... def num_of_comments(self): return self.comment_set.all().count() class ArticleAdmin(admin.ModelAdmin): list_display = ('title', 'category', 'author', 'num_of_comments') inlines = [CommentInline]
  24. 24. Creator is Current User  Seharusnya kita tidak perlu menampilkan field penulis di form artikel, dan penulisnya otomatis adalah user yang sedang login.  Dus kita tidak perlu lagi inputan author  Dan kita perlu merubah sedikit aturan save di admin-nya: class ArticleAdmin(admin.ModelAdmin): ... fields = ['title', 'content', 'category'] def save_model(self, request, obj, form, change): obj.author = request.user obj.save()
  25. 25. Kustomisasi Lain  Menampilkan hanya artikel yang saya tulis  Menambahkan search  Menambahkan filter kategori  Membuat fungsi publish masal  Membuat field & inline readonly  Membuat recycle bin (plugin tambahan)  Dan banyak lagi  Dan banyak lagi
  26. 26. Use Different Admin UI  Tidak puas dengan desain tampilan admin, kita bisa merubah sendiri dengan melakukan overriding template asli.  Tapi kalau mau yang sudah ada, bisa nambah plugin juga sih  Django-Suit:  Django-wpadmin:  Tambahkan django.core.context_processors.request pada ‘template’  ‘context_processors’ > pip install django-suit > pip install django-wpadmin
  27. 27. What to learn After  Templating  View (Function-based & Class-Based)  Form Validation  Model & Queries  Security  Internationalization  Performance  Plugins, plugins, plugins
  28. 28. Last Words

×