Web Framework ที่ชื่อ Django สามารถสร้าง CRUD ได้ง่ายดาย รวดเร็ว เพียงแต่สร้าง Model ให้ถูกต้อง Django จะจัดการสร้างหน้า Interface ให้อย่างสวยงาม แทบจะไม่ต้องเขียนคำสั่งใด ๆ เลย

สำหรับผู้ที่เข้ามาอ่านบทความนี้เป็นครั้งแรก และต้องการทดลองทำตามขอแนะนำให้ไปอ่านในตอนที่ 1 และ 2 ตามลำดับมาก่อน ในกรณีที่ไม่ได้ติดตั้งโปรแกรมใด ๆ ไว้ในเครื่องคอมพิวเตอร์มาเลยขอให้อ่านและทำตามตั้งแต่การติดตั้งภาษาไพธอนก่อนนะครับ

 

ในตอนที่ 3 จะแสดงขั้นตอนการสร้างโมเดล ซึ่งคำว่า "โมเดล" มันก็คือ Database table ที่ใช้สำหรับเก็บข้อมูล หรือ business logic ขององค์กรหรือหน่วยงานที่ต้องจัดทำระบบสารสนเทศ หรือฐานข้อมูล แล้วจะมีการสร้างฟอร์มสำหรับป้อนข้อมูล แก้ไข ลบ และแสดง หรือเรียกว่า CRUD : Create, Read, Update และ Delete ข้อมูลนั่นเอง มันเป็นฟังก์ชันพื้นฐานของการพัฒนาระบบสารสนเทศ ดังนั้น Django จะไม่ให้โปรแกรมเมอร์ต้องเขียนคำสั่งซ้ำแล้วซ้ำอีก เพียงเราสร้าง model เสร็จสั่งให้ syncdb มันจะสร้าง Database table มาให้พร้อมกับ CRUD สำเร็จทีเดียวเลย มาดูขั้นตอนการทำกันนะครับ

 

เพื่อให้เข้าใจได้ยิ่งขึ้นจึงขอยกตัวอย่าง model จาก northwind ซึ่งเป็นโปรแกรมที่เป็นตัวอย่างของ MS Access ที่คุ้นเคยกันดี ดู ER-Diagram จากภาพด้านล่างนี้ก่อนครับ

 

 

จะขอเริ่มสร้าง model จาก entity Suppliers เป็นตัวอย่างซัก 1 ตัวอย่างก่อน มีขั้นตอนดังนี้

 

  1. c:\repository\django\bin\bmis>manage.py startapp northwind
  2. จะไม่เกิดอะไรขึ้นใน command line แต่เมื่อ explore ดูจะมีโฟลเดอร์ northwind เพิ่มขึ้นมาและมีไฟล์ภายใน northwind จำนวน 4 ไฟล์ได้แก่  __init__.py, models.py, test.py และ views.py ไฟล์ชื่อ models.py นั้นใช้สำหรับสร้าง model ที่ได้กล่าวในข้างต้นไปแล้ว ส่วนไฟล์อื่น ๆ จะได้กล่าวถึงในตอนต่อไป 
  3. เปิดไฟล์ models.py ที่อยู่ในโฟลเดอร์ northwind ด้วย editor ใด ๆ ก็ได้
  4. พิมพ์คำสั่งเพื่อสร้าง model ดังนี้

 

from django.db import models
class Suppliers(models.Model):
    CompanyName = models.CharField(max_length=100)
    ContactName = models.CharField(max_length=100)
    ContactPosition = models.CharField(max_length=100)
    Address = models.CharField(max_length=150)
    District = models.CharField(max_length=100)
    Province = models.CharField(max_length=100)
    PostalCode = models.CharField(max_length=5)
    Phone = models.CharField(max_length=25,blank=True)
    Homepage = models.URLField(blank=True,verify_exists=True)


    def __unicode__(self):
        return self.CompanyName

 

ข้อควรระวัง ภาษาไธอนจะใช้การย่อหน้าแทนใช้บล็อก { และ } ในภาษาซีนะครับเพราะฉะนั้นเมื่อพิมพ์อักษร : แล้ว จะต้องกดปุ่ม Tab เสมอ แต่ถ้า IDE เช่น IDLE จะจัดย่อหน้าให้อัตโนมัติ

ถัดจากนั้นให้ Save

ขั้นตอนถัดไปเป็นการ setting ให้ Django รู้จัก App ที่ชื่อ northwind เขาเรียกกันว่าการ install app (เริ่มสับสนแล้วนะครับชื่อ northwind เป็นทั้งชื่อ database และ application) มีขั้นตอน ดังนี้

  1. เปิดไฟล์ settings.py 
  2. ดูที่ส่วนของคำว่า 

INSTALLED_APPS = (

    'django.contrib.auth',

    ................

    :

    'django.contrib.admin', #ให้พิมพ์เพิ่มไปหลังบรรทัดนี้

    'bmis.northwind', #อย่าลืมต้องมีอัญประกาศเปิดปิดและมีเครื่องหมายจุลภาคหลังสุดด้วย

  • เสร็จแล้ว Save

ขั้นตอนต่อไปเป็นการ syncdb เพื่อให้ django สร้างตารางข้อมูล Suppliers และสร้างหน้าง Interface มีขั้นตอนดังนี้

  1. c:\repository\django\bin\bmis>manage.py syncdb

ขั้นตอนต่อไปเป็นการสร้างไฟล์ admin.py เพื่อ register ให้ admin มองเห็น App หรือ CRUD ของ Suppliers มีขั้นตอนดังนี้

  1. Start > Programs > Python 2.7 > IDLE (python GUI)
  2. File > New window
  3. พิมพ์คำสั่งดังนี้

from django.contrib import admin

from northwind.models import *

admin.site.register(Suppliers) # Suppliers ก็คือชื่อคลาสที่อยู่ใน models.py ที่สร้างขึ้นมาก่อนหน้านี้

 

ให้ Save ตั้งชื่อไฟล์ว่า admin.py ให้เก็บอยู่ในโฟลเดอร์ northwind ถ้าตั้งชื่อเป็นอย่างอื่นจะเกิดผิดพลาดได้

เป็นอันเสร็จพิธีการทั้งหมด

ต่อไปเป็นการทดลองผลการทำงานของโปรแกรม เหมือน ๆ เดิม คือให้ runserver ดังนี้

  1. c:\repository\django\bin\bmis>manage.py runserver    (คำสั่งนี้ต้องจำให้ขึ้นใจเลยครับ เพราะว่าเมื่อทำเสร็จแล้วต้องทดลองด้วยวิธีนี้ตลอดเวลา)
  2. เปิด Browser ไปที่ 127.0.0.1:8000/admin/
  3. ล็อกอินเป็นชื่อที่ได้ป้อนเอาไว้ตอนคำสั่ง syncdb มีการตอบ yes และมีชื่อ username และ password ในตอนที่ 2 นะครับที่ได้เขียนบอกว่า ต้องจำให้ได้
  4. เมื่อป้อน username และ password แล้วจะได้ผลออกมาดังภาพ ด้านล่างนี้

 

ทดลองคลิกที่ link  add ของ Sีupplierss จะมีฟอร์มให้สวย ๆ ดังภาพ