Tuesday, March 1, 2011

Mulai Membuat Aplikasi dan Template Django Sederhana

Sebenarnya contoh untuk membuat aplikasi dan template sederhana sudah ada di dokumentasi Django. Untuk memulainya Django sudah memberikan empat rangkaian contoh yang dimulai di sini dan untuk fokus pada templating-nya di bisa dibaca di sini

Untuk mempermudah di situs ini juga ada cara pembuatan aplikasi Django dan templatenya yang diambil dari dokumentasi Django yang sudah 'diterjemah' ke dalam bahasa Indonesia.

Tapi berhubung kita menggunakan Django dengan App Engine maka ada beberapa langkah yang harus diabaikan, seperti perintah konsol 'admin-django.py startproject', 'manage.py sql', pengaturan database di file settings.py tidak perlu dirubah (karena kita akan menggunakan datastore App Engine), kita hanya perlu masuk ke folder project misalnya dengan nama 'project' kemudian menjalankan perintah 'manage.py startapp polls' dan otomatis akan membuat folder aplikasi yang akan kita buat, coba lihat artikel ini untuk contoh penerapannya.

Dari contoh yang ada di link artikel yang saya berikan di awal, kita mesti ubah dulu modelnya dengan mengedit models.py pada folder aplikasi kita disesuaikan dengan model yang digunakan App Engine, menjadi seperti ini :

from appengine_django.models import BaseModel
from google.appengine.ext import db

class Poll(BaseModel):
    question = db.StringProperty(required=True)
    pub_date = db.DateTimeProperty(auto_now_add=True)

class Choice(BaseModel):
    poll = db.ReferenceProperty(Poll)
    choice = db.StringProperty()
    votes = db.IntegerProperty()


Satu yang perlu diingat disini adalah, tidak seperti Django standar yang langsung men-generate model kita menjadi tabel database hingga bisa langsung diisi lewat halaman 'http://localhost:8000/admin' , di App Engine kita lebih dahulu harus mengisi 'tabel' model yang sudah kita buat secara 'programming' dan ini bisa kita lakukan dengan menggunakan salah satu API Django yaitu dengan mengaktifkan 'Shell' Django dengan perintah konsol 'manage.py shell' untuk detailnya baca di halaman ini, contohnya kurang lebih seperti ini :

# Import model yang sudah kita buat di aplikasi
# perintah import berbeda bila menggunakan Django Standar
>>> from project.polls.models import Poll

# Lihat isi data tabel, pastinya belum ada poll yang tersimpan 
# lihat saja hasilnya
>>> Poll.objects.all()


# Buat baris data Poll baru
>>> import datetime
>>> p = Poll(question="What's up?", pub_date=datetime.datetime.now())

# Simpan ke datastore
>>> p.save()


Setelah itu, sama seperti halnya pada Django standar kita juga harus mengedit file urls.py yang berada di folder aplikasi yang kita buat tambahkan baris ini :

(r’^polls/’, ‘polls.views.index’),

Setelah itu cantumkan aplikasi kita di file settings.py (ada di folder project kita, misalnya bernama 'polls') pada section 'INSTALLED_APPS'  serta set direktori template kita di section 'TEMPLATE_DIRS'

Nah sekarang coba buat kode ini pada file views.py yang ada di folder aplikasi yang kita buat :

from django.template import Context, loader
from project.polls.models import Poll
from django.http import HttpResponse

def index(request):
    latest_poll_list = Poll.objects.all().order('-pub_date')[:5]
    t = loader.get_template('polls/index.html')
    c = Context({
    'latest_poll_list': latest_poll_list,
    })
    return HttpResponse(t.render(c))


Kemudian buatlah template-nya dengan nama index.html, seperti berikut :

{% if latest_poll_list %}
    <ul>
    {% for poll in latest_poll_list %}
        <li>{{ poll.question }}</li>
    {% endfor %}
    </ul>
{% else %}
    <p>No polls are available.</p>
{% endif %}


Kemudian masuklah ke folder project Anda dan jalankan server Django Anda di konsol dengan perintah 'manage.py runserver' setelah itu jalankan browser dan masukan url 'http://localhost:8000/polls', silahkan dilihat hasilnya (untuk halaman admin App Engine masukan url 'http://localhost:8000/_ah/admin')

Versi PDF tulisan bisa didownload, silahkan kunjungi halaman ini

1 comment:

Dawud Tan said...

permisi gan, saya ada sedikit tulisan tentang protokol websocket menggunakan bahasa python berikut: http://datacomlink.blogspot.com/2015/11/script-python-websocket-rfc-6455-server.html
ditunggu feedbacknya gan, semoga menambah wawasan bersama gan.. terima kasih..