Showing posts with label django. Show all posts
Showing posts with label django. Show all posts

Tuesday, December 15, 2015

Rapid development bersama Django Rest



Iseng iseng googling baca - baca artikel teknologi macam apa yang digunakan oleh aplikasi terkenal seperti Instagram dan jawabannya adalah Django Framework. Apa itu django ? web framework yang menggunakan python (no python no django) untuk info lebih lanjut bisa baca blog saya yang sebelumnya klik disini.

Apakah cuma Instagram ? kalian bisa cek link dibawah:
https://www.quora.com/What-are-some-well-known-sites-running-on-Django

Untuk story-nya tentang django Instagram
http://instagram-engineering.tumblr.com/post/13649370142/what-powers-instagram-hundreds-of-instances

Oke, langsung aja..
Pada kali ini saya akan membahas membuat aplikasi rest service menggunakan module django-rest-framework. Pertama - tama harus mempunya basic pengetahuan tentang struktur project di django dan melakukan konfigurasi django admin site tutorial kalian bisa baca tutorial-django-administration-site.

Install
pip install djangorestframework

Lanjut ke intinya dan pastikan kalian sudah berhasil konfigurasi django admin site. Lalu buat new file /projectname/appname/serializer.py

serializer.py
from django.contrib.auth.models import User, Group
from rest_framework import serializers
class UserSerializer(serializers.HyperlinkedModelSerializer):
    class Meta:
        model = User
        fields = ('url', 'username', 'email', 'groups')
class GroupSerializer(serializers.HyperlinkedModelSerializer):
    class Meta:
        model = Group
        fields = ('url', 'name')

Buka file /projectname/appname/view.py dan tambahkan kode dibawah:
from django.contrib.auth.models import User, Group
from rest_framework import viewsets
from donate.serializers import UserSerializer, GroupSerializer
class UserViewSet(viewsets.ModelViewSet):
    """
    API endpoint that allows users to be viewed or edited.
    """
    queryset = User.objects.all().order_by('-date_joined')
    serializer_class = UserSerializer
class GroupViewSet(viewsets.ModelViewSet):
    """
    API endpoint that allows groups to be viewed or edited.
    """
    queryset = Group.objects.all()
    serializer_class = GroupSerializer

Register ke /projectname/url.py
from django.conf.urls import url, include
from rest_framework import routers
from projectname.appname import views

router = routers.DefaultRouter()
router.register(r'users', views.UserViewSet)
router.register(r'groups', views.GroupViewSet)

# Wire up our API using automatic URL routing.
# Additionally, we include login URLs for the browsable API.
urlpatterns = [
    url(r'^', include(router.urls)),
    url(r'^api-auth/', include('rest_framework.urls', namespace='rest_framework'))
]

Langkah terakhir register ke setting.py
INSTALLED_APPS = (
    ...
    'rest_framework',
)

REST_FRAMEWORK = {
    'DEFAULT_PERMISSION_CLASSES': ('rest_framework.permissions.IsAdminUser',),
    'PAGE_SIZE': 10
}

Selesai!. Run server

python manage.py runserver
Buka aplikasi dan login menggunakan user admin site:
List API
Testing Api
List User halaman admin

Kesimpulanya django adalah:

Sekian blog dari saya! Semoga bermanfaat

Sumber:
http://www.django-rest-framework.org/

Tuesday, December 16, 2014

Tutorial Django Administration Site

Django adalah web framework yang berbasis python dan menggunakan arsitektur MTV (Model View Template). Model adalah layer yang digunakan untuk berinteraksi dengan database, Template adalah layer presentasi untuk HTML, XML dan lainnya, sedangkan View adalah layer yang menjelaskan bagaimana data ditampilkan, data didapat dari model dan dikirimkan ke dalam template. 
Django Framework memeliki kelebihan-kelebihan sebagai berikut:
  1. Objet-Relational Mapper
  2. Automatic Admin Interface
  3. Template System
  4. Cache System
  5. Internatiolization
Pada blog kali ini saya akan menggunakan 2 kelebihan dari Django yaitu Automatic Admin Interface dan Object-Relational Mapper. 

Sebelum kita mulai pastikan anda sudah install Django 1.6.5 di komputer anda :D. Installation guide bisa klik disini. Serta database yang digunakan secara default menggunakan SQLite.
  1. Langkah pertama buka command line, cd ke diretkori dimana anda akan menyimpan django code.
    • Jalankan command django-admin.py startproject demoBlog
    • startproject akan membuat file dan folder seperti dibawah:
      demoBlog/
          manage.py
          demoBlog/
              __init__.py
              settings.py
              urls.py
              wsgi.py
  2. Jalankan command ./manage.py runserver dan buka url http://localhost:8000/.
  3. Pada langkah sebelumnya kita berhasil membuat project django, Sekarang kita akan membuat app. App adalah web aplikasi yang melakukan tugas spesifik (contohnya : Contact System). Sedangkan project kumpulan dari konfigurasi dan app
    • Jalankan command python manage.py startapp employee
    • startapp akan membuat file dan folder seperti dibawah:
      employee/
          __init__.py
          admin.py
          models.py
          tests.py
          views.py
  4. Buka file employee/model.py dan isi seperti dibawah:
  5. Register app employee yang sudah dibuat. Buka file demoBlog/setting.py
     
  6. Jalankan command  python manage.py sql  employee. SQL berdasarkan atribut dari class Contact pada file model.py.

  7. Jalankan command  python manage.py syncdb . Dan anda diharuskan mengisi username dan password yang digunakan untuk login ke Administration Site sebagai administrator.
  8. Buka employee/admin.py dan isi seperti dibawah:
  9. Buka http://localhost:8000/admin/ dan login.
  10. Klik Contact.
  11. Untuk memperindah halaman Contact, buka kembali admin.py dan isi seperti dibawah:
  12. Tampilan halaman Contact akan berubah seperti gambar dibawah:



Sekian blog dari saya semoga bermanfaat :).

Referensi:
http://www.djangobook.com/en/2.0/index.html
https://docs.djangoproject.com/en/1.6/