ขอไม่ลงรายละเอียดว่า อะไรคือ Web Framework, MVC, MVT พวกนั้นนะครับ อ่านเองที่ https://www.djangoproject.com/ และ เขียนวิธีติดตั้งบน Windows ไว้คร่าว ๆ ที่ ขั้นตอนการติดตั้ง django บน Windows และในที่นี้ใช้ Visual Studio Code เป็น Editor (สั่งด้วยคำสั่ง code …)
โจทย์
สมมุติในทีม มีคน 10 คน ต้องการ ระบบบันทึกการปฏิบัติงาน
- จัดเก็บข้อูล วันเวลาของงานที่ทำ, ประเภทของงงาน (ตาม TOR), รายละเอียดของงานที่ทำ, ระยะเวลาที่ใช้ไป (ชั่วโมง)
- แต่ละคน ต้อง Login เข้ามาก่อน จึงจะบันทึกปฏิบัติงานได้
วิถีแบบ django
สร้าง project ชื่อ myproject
django-admin startproject myproject
สร้าง App ชื่อ worklog
cd myproject
python manage.py startapp worklog
สร้าง Model ว่าจะเก็บข้อมูลอะไรบ้าง
แก้ไขไฟล์
code worklog/models.py
แล้วสร้าง Class ชื่อ Worklog เพื่อกำหนด Field เป็นช่องทางการเก็บค่าตามโจทย์ (Reference: https://docs.djangoproject.com/en/2.1/ref/models/fields/)
–> ขั้นตอนนี้ เขียนใน Visual Studio Code เสร็จแล้ว Save and Exit
from django.db import models
from django.utils.timezone import now
# Create your models here.
class Worklog(models.Model):
timestamp = models.DateTimeField(default = now())
typeOfWork = models.ForeignKey('TypeOfWork', on_delete=models.CASCADE)
work_text = models.TextField(default="")
manhour = models.FloatField(default=0)
def __str__(self):
return self.work_text
class TypeOfWork(models.Model):
typeOfWork_text = models.CharField(max_length=200)
def __str__(self):
return self.typeOfWork_text
บอกให้ django สร้างโครงสร้างฐานข้อมูลตามโมเดล (จาก Command Prompt)
python manage.py migrate
เพิ่ม App ‘worklog’ เข้าสู่ myproject
แก้ไขไฟล์
code myproject/settings.py
เพิ่ม ‘worklog’ ในส่วนของ INSTALLED_APPS
–> ขั้นตอนนี้ เขียนใน Visual Studio Code เสร็จแล้ว Save and Exit
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'worklog'
]
สร้าง Super User สักคนนึง
python manage.py createsuperuser
ตั้งชื่อว่า admin และ รหัสผ่านตามต้องการ

เพิ่มโมเดล TypeOfWork และ WorkLog เข้าสู่หน้าของ Admin โดยการแก้ไขไฟล์
–> ขั้นตอนนี้ เขียนใน Visual Studio Code เสร็จแล้ว Save and Exit
code worklog/admin.py
ดังนี้
from django.contrib import admin
# Register your models here.
from .models import TypeOfWork, Worklog
admin.site.register(TypeOfWork)
admin.site.register(Worklog)
สั่ง Run Server
สั่งที่ Command Prompt
python manage.py runserver
แล้วเปิด Web Browser ไปที่
http://127.0.0.1:8000/admin/

เริ่มต้นใช้งาน
เพิ่มประเภทของงาน




เพิ่มบันทึกการปฏิบัติงาน

มี Form สำหรับ Input ทันที


จากนั้น ก็เพิ่มคนเข้าทีม ด้วยเมนู Users ได้

ระบบ Security พร้อม

User01 ตั้งค่าให้เป็น Worklog > Can Add Worklog
ก็จะทำได้แค่เข้ามาบันทึกปฏิบัติงานเท่านั้น

สรุป
จะเห็นได้ว่า ด้วยการสร้างโมเดลเล็กน้อย django ก็สามารถสร้างระบบ User Entry ง่าย ๆ ที่มาพร้อม Security Features มากมายได้แล้ว ยังมีรายละเอียดอีกเยอะ โดยเฉพาะในส่วนของ View/Template ที่จะสร้าง User Input และการออกรายงานต่าง ๆ รวมถึง การสร้าง API และ RESTful API หรือ จะผูกกับ OAuth2 ก็ยังได้
หวังว่าเป็นประโยชน์ครับ