djsurvey – Google Forms Alternative #01

ต่อจาก ddready – แพ็ครวม django + bootstrap4 + crispy form + docker พร้อมใช้งาน ในบทความนี้ ผมได้พยายามทำให้ใช้งาน Django ได้ง่ายขึ้น จนได้ แบบสำรวจอย่างง่าย พร้อมใช้งาน ใน 3 ขั้นตอน

Prerequesite

ติดตั้ง Python 3.6+ หรือ ใช้ Python Container แล้ว

Repository

https://github.com/nagarindkx/djsurvey

ง่าย ๆ 3 ขั้นตอน

1. Clone Repository

ใช้คำสั่ง git

git clone https://github.com/nagarindkx/djsurvey.git

หรือ Download ไปก็ได้

https://github.com/nagarindkx/djsurvey/archive/master.zip

2. กำหนดข้อคำถามในแบบสำรวจ

แก้ไขไฟล์

/code/main/survey/models.py

ตัวอย่างเช่น แบบสำรวจ ประกอบด้วย

  1. ชื่อ
  2. อีเมล
  3. เพศ
  4. วันเดือนปีเกิด
  5. ผลไม้ที่ชอบ
  6. ข้อเสนอแนะ

ก็สร้าง Model ตามนี้ ( แรก ๆ อาจจะรู้สึกน่ากลัว แต่พอเข้าใจแล้ว มันง่ายมาก)

from django.db import models
class Survey(models.Model):
    fullname = models.CharField(
        verbose_name="ชื่อ",
        max_length=255,  blank=False)
    email = models.EmailField(
        verbose_name="อีเมล",
        blank=False)
    gender = models.CharField(
        verbose_name="เพศ",
        max_length=1,    blank=False,
        choices=[('F', 'หญิง'), ('M', 'ชาย')],
        default='F',
    )
    birthdate = models.DateField(
        verbose_name="วันเดือนปีเกิด",
        auto_now=False,  blank=False)
    fruit = models.CharField(
        verbose_name="ผลไม้ที่ท่านชอบ",
        max_length=1,    blank=False,
        choices=[('a', 'แอปเปิ้ล'), ('b', 'มะละกอ'),
                 ('c', 'กล้วย'), ('d', 'ส้ม')],
        default='c',
    )
    comment = models.TextField(
        verbose_name="ข้อเสนอแนะ",
        blank=True)

แนะนำให้ใช้ Visual Studio Code จะทำงานได้ง่ายมาก

3. Migrate แล้ว Run

ใช้คำสั่งต่อไปนี้

python manage.py migrate
python manage.py runserver 0:8080

ชมผลงาน

http://localhost:8080/survey/

หรือ ตกแต่งอีกนิดหน่อย ก็จะได้แบบนี้

http://localhost:8080/advancedsurvey/

สำหรับผู้ที่ใช้ Docker สามารถ ทำตามขั้นตอนใน แนวทางการพัฒนา Web Application ด้วย django จาก local docker สู่ Google Cloud Run เพื่อนำขึ้น Google Cloud Run ได้เลย (แต่ต้องเชื่อมกับ Database จริง ๆ ก่อนนะ – โปรดติดตามตอนต่อไป)

คุณกำลังเจอปัญหาเหล่านี้อยู่ใช่ไม๊ ?

  • Google Forms ก็ง่ายดีแหล่ะ แต่ จะทำอย่างไรให้เก็บข้อมูลไว้ในฐานข้อมูลได้ ?
  • อยากให้ ผู้ใช้งาน Upload เอกสารเข้ามา / แก้ไขข้อมูล ซึ่ง Google Forms ก็ทำได้ แต่ต้อง Login ด้วย Google Account ก่อน จึงจะทำได้
  • Google Forms ก็ทำ Conditions ได้แหล่ะ (Go to section base on answer) แต่ ถ้าจะให้มีการคำนวนที่ซับซ้อนกว่านั้น ก่อนจะเลือกคำถามถัดไป จะทำอย่างไร ?

ปัญหาเหล่านี้จะหมดไป เมื่อคุณใช้ Django !

  • ติดตั้งได้ บน Web Server ของคุณ!
  • Login ด้วย Facebook/Twitter/Google/Line หรือ Email หรือ จะเป็น Single Sign-On ก็ยังได้
  • ทุกอย่างสามารถ Customize ได้ ทำแบบสอบถามที่ซับซ้อนได้

ไว้เจอกันในตอนต่อ ๆ ไปครับ