Author: kanakorn.h

  • วิธีสร้างตาราง HTML Table จาก CSV File

    โจทย์คือ ต้องสร้างระบบ เพื่อให้ผู้ใช้ สร้าง โครงสร้างแบบฟอร์ม ด้วย Excel แล้วต้องแปลงให้เป็น Web Page ซึ่ง จะต้องการตกแต่งด้วย Bootstrap

    หน้าตาต้นแบบเป็นแบบนี้ (ในที่นี้ใช้ Google Sheets แต่ก็ทำวิธีการเดียวกันกับ MS Excel)

    ถ้า ใช้วิธี Save As เป็น HTML ตรง ๆ จะได้หน้าตาประมาณนี้

    ซึ่งจะยุ่งยากมาก ในการจัดการ และการควบคุมการแสดงผล

    วิธีการคือ !!!

    1 Save As เป็น CSV

    2 เปิดเว็บ
    http://www.convertcsv.com/csv-to-html.htm

    3 แล้ว Upload ไฟล์ หรือจะ Copy Paste ก็ได้

    4 ก็จะได้ plain HTML

    5 เอาไปประกอบกับ Bootstrap ได้สบาย (ในภาพ ใช้ django template tag ด้วย เลยได้ widget ตามที่กำหนด)

    หวังว่าจะเป็นประโยชน์ครับ

  • Spam Alert – หลอกเป็นธนาคารส่งแจ้งเตือนเรื่องการลงชื่อเข้าใช้อุปกรณ์ใหม่

    2 เมษายน 2563 08:18 พบอีเมล “หลอกลวง” ว่ามาจากธนาคาร กรุงไทย แจ้งเกี่ยวกับ อุปกรณ์ใหม่ลงชื่อเข้าใช้

    ลักษณะอีเมลเป็นดังภาพ หากผู้ใดได้รับ ลบทิ้งได้ทันที

    เพิ่มเติม: ลักษณะการโจมตีเช่นนี้ มักจะใช้ “ข้อความแสดงลิงค์” เป็น URL ที่น่าเชื่อถือ แต่เมื่อเอาเมาส์ไปวาง ก็จะพบว่า เป็น Link ไปที่อื่น ในกรณีนี้ อ้างว่าเป็น https://www.ktbnetbank.com แต่จริง ๆ ส่งไปยัง https://www.onlinenewstrend.com/

    ทางระบบ PSU Email ได้ทำการตรวจสอบ และแจ้งเตือนผู้ใช้อยู่แล้ว กรุณาสังเกต

    Disarmed: อีเมลฉบับนี้ ปลด Script อันตรายออกให้แล้ว

    MailScanner has detected a possible fraud attempt: แจ้งแล้วว่า มีความพยายามหลอกลวง

    “www.onlinenewstrend.com” claiming to be https://www.ktbnetbank.com: เนี่ย อีกเว็บนึง เคลมว่าเป็นอีกเว็บนึง

    จากบทความก่อนหน้านี้ เรื่อง ฉันโดนแฮ๊กหรือเปล่า !?!?! ลองทำตามขั้นตอนที่แนะนำดู จะพบว่า อีเมลนี้ มาจากอินเดีย

    หวังว่าจะเป็นประโยชน์ครับ

  • วิธีส่ง email ออกไปในนามหน่วยงาน ด้วย PSU Webmail

    เนื่องจาก ตอนนี้มีหลายหน่วยงาน มีความต้องการใช้ “email ส่วนกลาง” ที่เป็น Mailbox แยกจากบุคคล กันมามาก
    จึงขอเรียนให้ทราบถึงปัญหาที่หน่วยงานของท่านจะเจอ ก่อนจะตัดสินใช้วิธีการดังกล่าว

    1. ไม่รู้ใครอ่าน
    2. ไม่รู้ว่าใครส่งออกไป
    3. ไม่รู้ว่าใครลบ email สำคัญนั้น
    4. ไม่รู้ว่าใครเปลี่ยนพาสเวิร์ด

    วิธีที่ทำกันมาตลอด คือ การสร้าง Groupmail นั้น

    • แต่ละกลุ่ม มีสมาชิกผู้รับได้หลายคน ทำให้ช่วยกันดูแลได้
    • การส่งออก สามารถตั้งได้ว่า ส่งออกไปในนามหน่วยงาน และสามารถตรวจสอบได้ว่า ใครเป็นคนส่ง
    • สามารถสร้าง Archive ได้ หมายความว่า ย้อนกลับมาดูได้ว่า เรื่องเหล่านี้ พูดคุยกันไปว่าอย่างไรบ้าง
    • สมาชิกบางคน ลบ email ไป แต่ การสนทนา ยังอยู่
    • หมดปัญหา 1 account แต่รู้รหัสผ่านกันหลายคน

    สำหรับวิธีการตั้งค่า ให้ แต่ละคนในกลุ่ม ส่งออกไปในนามหน่วยงานได้ บน PSU Webmail

    1. คลิกที่ เมนู Options

    2. คลิก Personal Information

    3. คลิก Edit Advanced Identities

    4. จากนั้น กรอกข้อมูล Full Name, E-Mail Address และ Signature

    มีข้อที่ *** ต้องห้าม *** อยู่อย่างนึงคือ Fullname ต้องไม่มีเครื่องหมายพิเศษใด ๆ โดยเฉพาะ เครื่องหมาย “.” จากนั้น กดปุ่ม Save/Update

    5. เมื่อต้องการส่ง Email แบบ Compose สามารถเลือกได้ว่า ต้องการให้ออกไปนามหน่วยงาน

    เมื่อผู้รับได้รับ ก็จะเห็นแบบนี้

    ครับ

  • วิธีสร้าง Live Stream ด้วย Google Meet เพื่องานประชุมขนาดใหญ่ — Deprecated

    ต่อจาก ทุกคนใน PSU ใช้ Google Meet สำหรับประชุม / การเรียนการสอน ได้ใน 3 ขั้นตอน

    การประชุม มี 2 รูปแบบ

    1) แบบห้องประชุมเล็ก

    อาจจะเป็นการประชุมเล็ก ทุกคนสามารถพูดแทรกได้ (Discussion) เป็นแนวระดมความคิด (Brainstorm) นึกถึงห้องประชุมที่ทุกคนนั่งหันหน้าเข้าหากัน บนโต๊ะอาจจะมีไมโครโฟนของแต่ละคน ใครจะพูด ก็ยกมือ ขออนุญาตประธาน แล้วกดปุ่มพูด

    การประชุมแบบนี้ Google Meet ให้คนเข้าร่วมได้สูงสุด 250 คน

    ** ข้อแนะนำ ** ผู้เข้าร่วมประชุม ควรปิดไมค์ของตนเองไว้ก่อนเสมอ เพราะเสียงต่าง ๆ จะแทรกเข้าไปในห้องประชุมได้ ไว้เวลาอยากจะพูดอะไร ค่อยเปิดไมค์ แล้วพูด Google Meet จะสลับมายังหน้าของท่านเองอัตโนมัติ

    ปิดไมค์ใน Google Meet ทำงี้ครับ (แบบนี้คือเปิดอยู่ คลิกรูปไมค์เพื่อปิด)

    อย่างนี้ คือปิดเสียงแล้ว

    2) แบบห้องประชุมเปิดขนาดใหญ่

    AfricaBusinessConferernc.jpg
    Image Source: https://www.africastrictlybusiness.com/africa-business-club-at-harvard-spotlights-inclusion-innovation/

    การประชุมแบบนี้ เปิดให้คนจำนวนมาก สามารถเข้าฟังได้ โดยจะมีผู้พูดอยู่แหล่งเดียว อาจจะมีไมค์อยู่จำนวนหนึ่ง สำหรับให้ผู้เข้าร่วมประชุมซักถามได้

    ในกรณีนี้ Google Meet สามารถรองรับการเข้าชม “พร้อม ๆ กัน” ได้ถึง 100,000 คน เรียกว่า “Live Stream”

    ในทางเทคนิคการใช้งาน หากผู้เข้าร่วมประชุมท่านใด ต้องการพูดกับผู้บรรยาย ก็ค่อย สลับเข้าร่วม (Join Meeting) ได้ ซึ่งก็จะสอบถามได้พร้อมกัน 250 คน

    วิธีทำ Live Stream บน Google Meet

    Live Stream ต้อง “เริ่มต้น” จาก Google Calendar เท่านั้น

    1 สร้าง Event บน Google Calendar

    (ของ PSU เท่านั้น, Free Gmail ทำไม่ได้)

    เริ่มจาก คลิก วันที่ต้องการบรรยาย แล้ว ใส่ชื่อ Event เลือกช่วงเวลา แล้วคลิก More Options

    2 เลือก Add Conference > Hangout Meet

    3 เลือก Add live stream

    4 Copy live stream link

    เอาไปเผยแพร่ เช่น แปะเป็น Link บน Website เป็นต้น

    4 กดปุ่ม Save

    เป็นอันเรียบร้อย แล้วก็ รอเวลา ผู้จัดการบรรยาย ก็เข้าไปทำหน้าที่ครับ

    UPDATE:

    จากนั้น ก็เข้า Join Hangout Meet คลิก Join Now

    เสร็จแล้ว คลิกที่ Setting (3 จุดด้านขวาล่าง) แล้วคลิก Start Streaming

    วิธีการนี้ ทำให้ “คนในองค์กร” ของเรา สามารถเข้าฟังการบรรยายได้พร้อม ๆ กัน เป็นจำนวนมาก ดังนั้น ต้อง Login ด้วย PSU G Suite for Education Account ก่อน จึงจะสามารถเข้าดูได้ –> Free Gmail และ ผู้ที่ไม่ได้ Login ไม่สามารถดูได้นะครับ

    หวังว่าจะเป็นประโยชน์ครับ

  • ทุกคนใน PSU ใช้ Google Meet สำหรับประชุม / การเรียนการสอน ได้ใน 3 ขั้นตอน

    Google Meet เปิดให้บัญชีของ PSU Email “ทุกคน” สามารถใช้งานได้ (เพราะเราใช้บริการ G Suite for Education)

    • สร้างห้องประชุมได้ *
    • รองรับได้สูงสุด 250 คน ต่อห้อง **
    • สตรีมมิงแบบสด
    • บันทึก VDO ได้ โดยเก็บบน Google Drive ***

    * เราในฐานะผู้มีบัญชี G Suite สามารถ สร้าง ได้ และเชิญผู้เข้าร่วม โดย ผู้เข้าร่วมประชุม ไม่จำเป็นต้องมี Google Account ก็ได้ (ดูอย่างเดียว)

    ** ถ้าต้องการทำสำหรับงานประชุมที่มีคนดูอย่างเดียวจำนวนมาก เช่น เปิดสอนคลาสใหญ่ แนะนำ วิธีสร้าง Live Stream ด้วย Google Meet เพื่องานประชุมขนาดใหญ่

    *** สามารถบันทึกได้จนถึง 1 ก.ค.2020

    เริ่มกันเลย

    0: Login ด้วย PSU Email (หากยังไม่เคยใช้บริการมาก่อน ขอให้ดำเนินตามขั้นตอนตามนี้ https://gafe.psu.ac.th/support/1/1) และแนะนำให้เริ่มต้นจากหน้า Gmail

    1: คลิกที่ App หรือ 9 จุด จากนั้นคลิกที่ ไอออน Meet ดังภาพ (หรือจะเปิด website https://meet.google.com เลยก็ได้)

    2: คลิกที่ Join or start a meeting

    แล้วตั้งชื่อเป็นภาษาอังกฤษ แล้วคลิก Continue

    แล้วคลิก Allow

    คลิก Join Now

    3: เชิญคนเข้าร่วม

    ทำได้โดยการ ส่ง Link ไปให้ เช่น ส่งทาง LINE/Facebook/Email หรืออะไรก็แล้วแต่สะดวก หรือ จะ Add People ก็ได้ หากต้องการห้องเฉพาะกลุ่ม

    นอกนั้น …

    บันทึก VDO

    คลิกรูป 3 จุดด้านล่างขวา แล้ว เลือก Record meeting

    แล้วก็ Accept

    แสดง PowerPoint

    เริ่มจากเปิด PowerPoint ที่ต้องการ แล้วเข้าสู่โหมด Presentation

    แล้วคลิก Present now แล้ว เลือก A window

    แล้วเลือก window ที่ต้องการแสดง แล้วกดปุ่ม Share

    เลือกสลับหน้าจอได้ เลือกว่าให้จะนำภาพใครขึ้น Stage หรือ จะดูในส่วนของ Chat ก็ได้

    หยุดการบันทึก

    คลิกที่ 3 จุด ด้านล่างขวา แล้ว กด Stop recording

    หยุด Meeting

    คลิกที่รูป โทรศัพท์สีแดงตรงกลาง

    ไฟล์บันทึก Meeting อยู่ใน Google Drive ที่ My Drive > Meet Recordings

    หมายเหตุ: จะได้ไฟล์ ซึ่งสามารถ Download ออกมาเป็น .mp4 ได้ (รอสักครู่หลังสิ้นสุดการ Meeting) และ จะสามารถ Play ได้ เมื่อ Google Drive เตรียมไฟล์เสร็จ เช่น เอาไปแสดงในเว็บไซต์ ตามวิธีการ เค้าเอาไฟล์ MP4 บน Google Drive ไปแสดงใน Video Player บนเว็บได้อย่างไร

    วิธีการใช้งาน Google Meet
    https://support.google.com/meet/?hl=th#topic=7306097

  • ฉันโดนแฮ๊กหรือเปล่า !?!?!

    หลายท่านอาจจะเคยได้รับ email หน้าตาประมาณนี้

    ข้อเท็จจริงคือ

    เราสามารถปลอมเป็นใคร ส่ง email ออกไปให้ใครก็ได้

    Truth …

    แล้ว จะรู้ได้อย่างไร !?!

    ต้องดูสิ่งที่เรียกว่า Header … โดยทำตามวิธีการต่อไปนี้

    1. คลิกที่ View Full Header

    จะได้ผลประมาณนี้

    จากภาพ จะเห็นว่า ส่งจาก (ดูจาก ล่าง ขึ้น บน)

    Received: from [154.117.164.59] (unknown [154.117.164.59])
         by mailscan.in.psu.ac.th (Postfix) with ESMTP id 69F2B150768
         for <kanakorn.h@psu.ac.th>; Thu, 5 Mar 2020 13:24:42 +0700 (ICT)

    แล้วจึงส่งเข้าระบบ PSU Email

    Received: from mailscan.in.psu.ac.th (unknown [192.168.107.12])
         by mail.psu.ac.th (Postfix) with ESMTP id A034D464FC7
         for <kanakorn.h@psu.ac.th>; Thu, 5 Mar 2020 13:24:46 +0700 (+07)

    แล้วจึงเข้า Mailbox ของ PSU (ข้อมูล version ของ cyrus เอาออกไม่ได้จริง ๆ ครับ ไว้รอ Upgrade)

    Received: from mail.psu.ac.th ([unix socket])
         by mail (Cyrus v2.4.18-Debian-2.4.18-3) with LMTPA;
         Thu, 05 Mar 2020 13:24:46 +0700

    จะเห็นได้ว่า ต้นทางคือ IP Address : 154.117.164.59

    ตรวจสอบว่าอยู่ที่ไหนในโลก ด้วย

    https://whatismyipaddress.com/ip/154.117.164.59

    ประมาณ South Africa

    สรุป ! ไม่ได้โดน Hack (ไม่ได้เข้ามาใช้ PSU Email ส่ง)

    ครับ

  • วิธีแจ้งเตือนจาก Google Forms เข้า LINE

    ต้องยอมรับว่า ปัจจุบันพฤติกรรมผู้ใช้ “ทั่วไป” จะเปิด LINE อ่านบ่อย และเร็วกว่าการเปิดอ่าน Email

    ต่อไปนี้ เป็นวิธีการ ตั้งค่าที่ Google Forms ว่า เมื่อมีคน Submit แบบฟอร์มมา ให้มา Alert ที่ LINE ของเรา หรือ ส่งเข้า LINE Group ก็ได้ โดยอาศัยความสามารถของ Google App Scripts ที่เรียก REST API ของ LINE

    สร้าง หรือ แก้ไข Google Forms ที่ต้องการ

    จากนั้น ไปที่ “More” หรือ ปุ่มสามจุดแนวตั้งด้านขวามือบน แล้ว คลิกที่ Script Editor

    จากนั้น ใส่ Google App Script

    ตามนี้ ในที่นี้ ตั้งชื่อ Function คือ sendLineNotification

    **** อย่าลืมเปลี่ยน YOUR-TOKEN-GO-HERE ที่จะได้จากขั้นตอนต่อไป ****

    function sendLineNotification(e)
    {
      // เลือกใช้ Form ที่กำลังใช้งานนี้
      var form = FormApp.getActiveForm() 
      
      // รับค่าจาก Form Response
      var itemResponses = e.response.getItemResponses();  
      
      // ข้อความที่แสดงในบรรทัดแรก
      var result="New Response" 
      
      // Loop แต่ละข้อคำถาม และ คำตอบ
      for (var i = 0; i < itemResponses.length; i++) {
        var itemResponse = itemResponses[i];
        
        // ต่อข้อความจากทุกคำถาม เป็นข้อความยาวข้อความเดียว
        // getTitle คือ Question Title แต่ละข้อ
        // getResponse คือ ถามตอบที่ส่งมา
        result += '\n'+itemResponse.getItem().getTitle()+': '+itemResponse.getResponse()
      }
      
      // สร้างรูปแบบที่จะส่งไปให้ LINE -- ในที่นี้คือข้อความอย่างเดียว
      var formData = {
        'message': result,
      };
      
      // LIINE token : ได้มาจาก https://notify-bot.line.me/my/
      // ในตัวอย่างนี้ เป็นแบบ Personal
      var token = 'YOUR-TOKEN-GO-HERE'
      
      // POST แบบใน Token ใน Header ไปยัง LINE Notify REST API
      var options = {
        'method' : 'post',
        'headers' : {'Authorization': "Bearer "+token},
        'contentType': 'application/x-www-form-urlencoded',
        'payload' : formData
      }
      UrlFetchApp.fetch('https://notify-api.line.me/api/notify', options)
    }
    

    ตั้งชื่อ Project, Save แล้ว Run

    ** อย่าลืม ตั้งชื่อ Project แล้ว Save ด้วย

    จากนั้น กดปุ่ม Run เพื่อให้เกิดการขอ Authorization ตาม OAuth Scope

    ซึ่งจะเจอ Error นี้ ก็ไม่เป็นไร (เพราะไม่มี ข้อมูลส่งมาจริง ๆ นั่นเอง) ให้กด Dismiss ไป

    ไปตั้ง Trigger

    ไปที่ เมนู Edit > Current project’s triggers

    ตั้งค่า Trigger ให้ทำงานทันทีที่มีการ Submit แบบฟอร์ม

    Trigger คือการตั้งค่าให้ Script นี้ทำงานอัตโนมัติ เมื่อมีการ Submit แบบฟอร์ม

    คลิก Add Trigger แล้วเลือก Function “sendLineNotification” เลือก “on form submit” และ “Notify me immediately” เพื่อให้เมื่อมีการ Submit แบบฟอร์ม ก็จะแจ้งทาง LINE ทันที

    จากนั้น กดปุ่ม Save

    ผลที่ได้คืออย่างนี้

    ขั้นตอนการขอ LINE Token

    ไปที่เว็บไซต์

    https://notify-bot.line.me/my/

    แล้ว Login ด้วย LINE Account ของท่าน

    จากนั้น คลิกปุ่ม Generate token

    ตั้งชื่อ และ เลือกว่าจะ Notify ไปที่ใด เราสามารถเลือกได้ว่า

    • ให้ Notify ไปที่เราคนเดียว
    • ให้ Notify ไปยัง Group Chat

    *** เราต้องเพิ่ม Line Notify เป็นเพื่อนก่อน และ Invite เข้าไปใน Group Chat นั้น ๆ ด้วย

    จากนั้น คลิกปุ่ม Generate Token

    ก็จะได้ Token ให้คลิกปุ่ม Copy แล้วคลิก Close

    จากนั้น นำไปแทนที่ YOUR-TOKEN-GO-HERE ใน Google App Script ข้างต้น แล้ว Save

    เราสามารถสร้าง Token สำหรับใช้งานในกิจกรรมที่แตกต่างกันได้ หลาย ๆ อัน เช่น อาจจะมี ต้องการให้แจ้งเตือนในกลุ่มที่แตกต่างกันออกไป เป็นต้น

    เมื่อมีคน Submit แบบฟอร์ม ก็จะมี LINE แจ้งเตือน

    อันนี้ แบบ Basic ง่าย ๆ เดี๋ยวค่อยมาเล่าการใช้งานที่ซับซ้อนกว่านี้

    หวังว่าจะเป็นประโยชน์ครับ

  • PSU Webmail ทำไมลบ email ออกไปตั้งเยอะแล้ว แต่ Quota ยังเต็ม ?

    เหตุ: แบ่งเป็น 4 กรณี

    (1) ลบแล้ว แต่ยังไม่ Expunge

    ก่อนหน้านี้ เคยตั้งค่าให้ Delete แล้วก็ให้ลบหายไปเลย แต่ก็มีบางคน (หลายคน) แจ้งว่า อยากให้แค่ Mark Delete กล่าวคือ … ลบแล้ว แต่ให้เปลี่ยนใจได้ จึง … ทำให้คนอื่น ๆ เมื่อลบแล้ว ก็ต้องกดปุ่ม Expunge ด้วย เพื่อให้ลบถาวร

    *** ระบบ PSU Email เมื่อลบและกด Expunge แล้วจะเป็นการลบ ถาวร ไม่สามารถกู้คืนได้ไม่ว่ากรณีใด ๆ ***

    (2) ลบแต่จดหมายเล็ก ๆ

    บางที เราก็มีจดหมายไม่กี่ฉบับ แต่ว่า แต่ละฉบับ อาจจะแนบไฟล์ขนาดใหญ่ ๆ ทั้งนั้น วิธีการคือ สั่งให้ PSU Webmail แสดง ขนาดของ email แต่ละฉบับ โดยไปที่

    Options > Index Order

    จากนั้นคลิกปุ่ม Add ข้าง ๆ Size แล้ว คลิก Inbox อีกครั้ง

    จะปรากฏ Column “Size” ด้านขวามือ ให้คลิกเรียงลำดับ ตามขนาดของ email ให้เลือกลบฉบับที่มีขนาดใหญ่ ๆ ก่อน แล้ว *** และเมื่อลบแล้ว ก็อย่าลืม Expunge และ อย่าลืม เรียงลำดับใหม่ด้วย มิฉะนั้น จะไม่เห็นอีเมลใหม่สุด อยู่บนสุด *** เพราะระบบกำลังแสดงผลแบบเรียงลำดับตาม ขนาดของอีเมลอยู่

    (3) ลบใน Inbox หมดแล้ว แต่พื้นที่ยังเต็ม เป็นเพราะ มันเต็มใน Folder อื่น

    ให้คลิกที่ Folder Size ด้านล่างซ้ายของ PSU Webmail

    จะแสดงผลให้เห็นว่า จริง ๆ แล้ว Folder ใดที่กินพื้นที่ เมื่อทราบแล้ว ก็ไปจัดการให้ถูกที่

    (4) ทำตามข้อ 1-3 แล้ว ยังเต็ม ก็เป็นเพราะมี Folder “Trash” ซึ่งซ่อนอยู่

    มันมาได้ไง ?? มาจากการใช้ Mail Client บน โทรศัพท์มือถือ แล้วต่อ IMAP มายัง PSU Email Server มักจะสร้าง “Trash” Folder ไว้ เมื่อผู้ใช้ ลบอีเมล ก็จะย้ายไปไว้ใน Trash นี้ (ไม่ใช่ INBOX.Trash ของระบบ) ซึ่งจะมองเห็นได้บนโทรศัพท์มือถือ แต่ มักจะมองไม่เห็นบน PSU Webmail

    วิธีการแก้ไขคือ เลือกให้แสดง Folder นี้ โดยคลิกที่

    Folders > Trash > Subscribe

    แล้วกด Refresh folder list

    ก็จะปรากฏ Trash อยู่ในรายการด้าน ซ้ายมือ ให้ทำการลบได้ตามปรกติ

  • 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 ได้ ทำแบบสอบถามที่ซับซ้อนได้

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