ต่อจาก 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
ตัวอย่างเช่น แบบสำรวจ ประกอบด้วย
- ชื่อ
- อีเมล
- เพศ
- วันเดือนปีเกิด
- ผลไม้ที่ชอบ
- ข้อเสนอแนะ
ก็สร้าง 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/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 ได้ ทำแบบสอบถามที่ซับซ้อนได้
ไว้เจอกันในตอนต่อ ๆ ไปครับ