Django Framework

From ITTutor.net Wiki

  • Currently0.00/5
Jump to: navigation, search

Jadual kandungan

Pengenalan

Django adalah antara framework yang 'panas' dalam dunia Python hari ini. Walaupun ada framework lain spt Pylon (mirip RoR), Turbogears, CherryPy (old timer), Web.py (utk minimalist) tetapi Django nampaknya semakin popular.

Python WSGI

WSGI adalah satu spesifikasi yang dirangka oleh Python community utk membolehkan application yang ditulis mengikut spec WSGI, dilarikan (run) oleh mana-mana web server/application server yang turut sama menyokong spec/protokol WSGI. Lebih kurang mcm tu lah. It's hard to explain in Malay actually. Dengan adanya WSGI, developer boleh fokus kepada develop application shj, selagi mana ia mengikut spec yang ditetapkan oleh WSGI dan application akan decouple daripada web server/application server. Spec WSGI adalah amat simple. Kesemua application WSGI mestilah dalam bentuk python 'callable' yang boleh menerima 2 arguments. Callable dalam Python adalah spt function. Class juga adalah callable sekiranya ia implement special method __call__().

Berikut adalah contoh application WSGI yang paling mudah:-

def simple_app(environ, start_response):
    """Simplest possible application object"""
    status = '200 OK'
    response_headers = [('Content-type','text/plain')]
    start_response(status, response_headers)
    return ['Hello world!\n']

Application di atas adalah dlm bentuk function bernama 'simple_app' dan menerima 2 arguments - environ, start_response. start_response adalah callable object dan simple_app mestilah memanggil start_response dan seterusnya return iterable, contohnya cm list (spt kat atas). Seterusnya utk run application ini, kita perlukan web server ataupun application server yang juga menyokong WSGI. Dalam Python 2.5, ada dibekalkan sekali contoh implementasi WSGI server yang dinamakan wsgiref. Contoh code utk run:-

from wsgiref.simple_server import make_server
    srv = make_server('localhost', 5000, application)
    srv.serve_forever()

Tapi membangunkan aplikasi menggunakan kaedah spt di atas adalah terlalu 'low-level' dan sudah semestinya amat tidak produktif. Kita terpaksa parse dan construct sendiri request dan response object, session system, form generation, auth system dsbnya. Sebab tu wujud mcm2 framework yang boleh bantu kita utk develop applikasi dengan lebih mudah.

Installation

  • Install Python 2.5. Yang best Python 2.5 adalah disertakan sekali sqlite dan wsgiref dalam standard library. Cuma double click installer tersebut dan ikut arahan pada skrin.
  • Install django. Saya gunakan version 0.96.1 iaitu yang latest sekali. Pakej ini dalam bentuk tarball (*.tar.gz) jadi saya gunakan Winrar utk extract.
  • Setelah download dan extract django menggunakan winrar, contohnya ke folder My Documents\Python\Django, gunakan Command Line utilities:-
C:\> cd Document and Settings\kamal\My Documents\Python\Django
C:\Document and Settings\kamal\My Documents\Python\Django > C:\Python2.5\python.exe setup.py install
  • Ini dengan andaian anda install Python ke folder C:\Python2.5

Setting up environment

Setuptools

Seterusnya install easy_install. Easy_install adalah package manager dalam Python yang akan memudahkan kita install module2 python yang lain. Download ez_setup.py dan save ke folder My Documents\Python, kemudian jalankan arahan berikut:-

C:\> cd Document and Settings\kamal\My Documents\Python\Django
C:\cd Document and Settings\kamal\My Documents\Python > C:\Python2.5\python.exe ez_setup.py

Arahan tersebut akan install easy_install ke dalam sistem anda. Untuk menguji easy_install berfungsi atau tidak, kita cuba install satu module baru nama Werkzeug, yg akan kita gunakan nanti.

C:\Python2.5\Scripts\easy_install werkzeug
C:\Documents and Settings\kamal>C:\Python25\Scripts\easy_install.exe werkzeug

Testing Installation

Sekarang mari kita buat project Django yang pertama.

C:\Python25\Lib\site-packages\django\bin\django-admin.py startproject clinic

Django akan generate folder clinic dengan 4 files di dalamnya iaitu settings.py, urls.py, manage.py dan __init__.py. File __init__.py adalah utk memberitahu Python bahawa folder clinic akan menjadi python module di bawah namespace clinic.

C:\Documents and Settings\kamal\My Documents\Python\clinic>c:\Python25\python.exe manage.py runserver
Validating models...
0 errors found.

Django version 0.96.1, using settings 'clinic.settings'
Development server is running at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.

Kemudian cuba akses url http://localhost:8000/melalui browser anda. Sekiranya Welcome page dipaparkan bermakna proses pemasangan Django sudah berjaya.

Program Pertama

Personal tools