
django (ดี)จังโก้ ดีอย่างไร #01
ขอไม่ลงรายละเอียดว่า อะไรคือ 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