วันอาทิตย์ที่ 29 มกราคม พ.ศ. 2560

Tutorial 3

Tutorial 3

    1.เพิ่ม method ใน polls/view.py ดังนี้


        ต่อจากนั้นก็สร้าง urls สำหรับแต่ละ method


           ลองเว็บบราวซ์เซอร์ /polls/34, /polls/34/results และ /polls/34/vote แล้วมันจะรัน 
       method และแสดง question_id ที่เราใส่เข้าไปพร้อมกับข้อความที่เราใส่เข้าไป จะได้ผลดังนี้


    
    2.แก้โค้ด /polls/view.py ตามด้นล่างเพื่อให้ หน้าเว็บสามารถแสดง คำถามทั้งหมดได้


        เมื่อรันหน้าเว็บออกมาจะได้ดังนี้


        ซึ่งถ้าเราอยากคั่นด้วยอย่างอื่นที่ไม่ใช่คอมม่า(,) ก็เปลี่ยนจากคอมม่า ในบรรทัดของ output เป็น
    อย่างอื่นเช่น / เป็นต้น



    3.สร้าง folder ใหม่ที่ชื่อ templates ขึ้นมา แล้วใน folder นั้นก็สร้าง folder ที่ชื่อ polls
       แล้วใน polls ก็สร้าง templates ที่ชื่อ index.html ขึ้นมาแล้วใส่ โค้ดด้านล่างลงไป

  
    หลังจากนั้น ก็เปลี่ยน polls/view.py ตามโค้ดด้านล่าง


        จะได้เป็นหน้าดังนี้
        ซึ่งจากโค้ดใน index นั้น จะเรียงคำถามทั้งหมดที่เราตั้งขึ้นมาเพื่อให้เราเข้าไปโหวต
        *จากโค้ด จะมี tag ที่ชื่อ <ul></ul> ซึ่งจะเป็นตัว bullet ขึ้น แต่ถ้าอยากได้เป็นตัวเลข ให้ใช้
    <ol></ol> แทน จะได้เป็น
        ** ul = unordered list
            ol = ordered list


        ถ้าอยากได้โค้ดที่กระชับและสั้นกว่านี้ให้ใช้ shortcut ตามโค้ดด้านล่างนี้


     4.เมื่อไม่มีที่ผู้ใช้เรียกนั้น ก็ควรจะรายงาน error ว่าไม่มีหน้านั้น โดยใช้โค้ดด้านล่าง


     หากเราต้องการโค้ดที่สั้นกว่านี้ ก็มี shortcut ตามโค้ดด้านล่าง


    จากนั้นก็สร้าง template ใหม่ templates/polls/detail.html แล้วใส่โค้ดด้านล่างลงไป

    จะได้ผลดังนี้
   



วันเสาร์ที่ 28 มกราคม พ.ศ. 2560

Tutorial 2

Tutorial 2

    1.แก้โค้ด polls/model.py ตามรูปด้านล่าง เพื่อสร้าง model ของ Question, Choice
   

    CharField <-- เป็นคำสั่งที่ไว้กำหนดจำนวนตัวอักษรที่ใส่ได้
    DateTimeField <-- เป็นคำสั่งที่ไว้เก็บข้อมูลของเวลา และวันที่
    ForeignKey <-- เป็นคำสั่งที่ ให้แต่ละ Choice เชื่อมกับแต่ละ Question


    2. เพื่อที่จะให้ app ไปอยู่ใน project เราต้อง เอาจุดอ้างอิง('polls.apps.PollsConfig'.)ไปใส่ไว้ใน mysite/setting.py ในส่วนของ INSTALLED_APP

    3. พิมพ์ python3 manage.py makemigrations polls ลงไปใน command line เพื่อบอก Django ว่า  ในส่วนของ model มีการเปลี่ยนแปลงแล้ว ดังรูปด้านล่าง


    4. python3 manage.py sqlmigrate polls 0001 เพื่อแสดงสถานะของ SQL สำหรับ migration

    5. python3 manage.py migrate <-- เพื่อใช้สิ่งที่เปลี่ยนแปลง ลงใน database
       
    6.ถ้าอยากลองใช้ shell ของ Django ให้ใส่ python manage.py shell ลงใน command line


     จากโค้ดด้านบน เราได้ใส่ ใส่คำถามลงไปใน q โดยใช้ class Question แล้วลองดึงค่าจากใน q 
     ออกมาแสดง

     7.เพิ่ม method ใน polls/model.py เพื่อให้ class สามารถแสดง object ได้

 



    ถ้าไม่ใส่ จะเป็นแบบรูปด้านล่าง 


    คือ จะไม่แสดง object ที่อยู่ใน class นั้นได้ 

    9.แก้ไขโค้ดใน polls/admin.py ตามด้านล่าง เพื่อที่ admin จะได้รู้ว่า Question object และ 
       Choice object อยู่ในหน้า admin interface


    8.เราต้องสร้างผู้ใช้ เพื่อที่เราจะได้เข้าไปที่หน้า admin ได้ ดังนี้
        - python3 manage.py createsuperuser 
        แล้วเราก้ต้องใส่ชื่อผู้ใช้และ รหัส เมื่อเสร็จก็รันเซิร์ฟเวอร์
        - python3 manage.py runserver
        ตามรูปด้านล่าง


   เมื่อรันเซิร์ฟเวอร์แล้ว จะได้เป็นหน้าดังนี้

    ใส่ชื่อแอดมินและ รหัส เพื่อเข้าสู่หน้าแอดมินด้านล่าง
    จะมี Question ให้ตั้งคำถามและ Choice เป็นตัวเลือกของคำถามจะได้ดังนี้





วันศุกร์ที่ 27 มกราคม พ.ศ. 2560

Tutorial 1

Tutorial 1


    1.พิมพ์โค้ดด้านล่างลงไป
        django- admin startproject mysite <--- สร้างเป็น project
        python3 manage.py startapp polls <--- สร้างเป็น application
    จะได้เป็น
        mysite
            - manage.py
            - mysite
                  - __init__.py
                  - setting.py
                  - urls.py
                  - wsgi.py
            - polls
                  - __init__.py  
                  - admin.py  
                  - apps.py  
                  - migrations 
                        -  __init__.py
                  - models.py
                  - tests.py
                  - urls.py
                  - views.py

    ในไฟล์ mysite
        __init__.py <-- เป็นไฟล์เปล่าที่บอกว่า ไฟล์นี้ใช้ python 
        manage.py <-- เป็นคำสั่งที่ ทำให้เราสามารถ ใช้ Django ได้
        setting.py <-- บรรจุข้อมูลที่ใช้ควบคุมโปรเจคที่ใช้
        urls.py <-- ประกาศ urls.py ของโปรเจค 
        wsgi.py <-- เป็นจุดเชื่อมต่อสำหรับ WSGI server กับ โปรเจค
    ในไฟล์ polls
        view.py <-- เป็นส่วนที่เราอยากเอาไปแสดงบนหน้าเว็บ

    2.สร้าง ฟังก์ชัน index ใน polls/views.py ตามโค้ดด้านล่างเพื่อทดลองการแสดงหน้าเว็บ


    3.สร้างไฟล์ polls/urls เพื่อสร้าง url สำหรับ ฟังก์ชัน index


    4.เพื่อให้โปรเจคนี้รู้จัก app นี้ จึงต้องใส่โค้ดด้านล่างลงไป

    5.เมื่อ พิมพ์ python3 manage.py runserver ลงใน command line จะได้เป็นหน้าเว็บ
       ด้านล่าง



        
        
   
   

   

       
   

วันพฤหัสบดีที่ 26 มกราคม พ.ศ. 2560

Framework

Framework   

    โครงสร้างของการเขียนโปรแกรม ที่มีการจัดวางของ code อย่างเป็นระบบ และมีลักษณะการเขียนที่เป็นมาตรฐาน ซึ่งเหมาะกับการเขียนโปรแกรมที่มีขนาดใหญ่

อ้างอิง

    http://www.siammodify.com/framework-%E0%B8%84%E0%B8%B7%E0%B8%AD%E0%B8%AD%E0%B8%B0%E0%B9%84%E0%B8%A3.html


ทำไมเราถึงต้องใช้ Framework?

1. Code and File Organization

    การออกแบบโครงสร้างของโปรแกรม ต้องมีความยืดหยุ่นสูง  การจัดวาง folder และ file  ต่างๆ นั้นได้ถูกออกแบบและจัดหมวดหมู่เป็นอย่างดี เพื่อให้ทีมพัฒนาซอฟแวร์สามารถเข้าใจโครงสร้างโปรแกรม และต่อเติมได้ง่าย รวมทั้งง่ายต่อการดูแลรักษา

2. Utility, Helper and Library


ถ้าเราไม่ใช้ framework  งานที่ต้องทำซ้ำๆ ในการพัฒนาซอฟแวร์เช่น
  1.การ validate ฟอร์ม
  2.การ filter -> input / output
  3.การเขียนโปรแกรมเชื่อมต่อฐานข้อมูล
  4.การสร้างและแก้ไข session, cookie
  5.ระบบส่ง email, ปฏิทิน, pagination
  6.การจัดการ user / role / permission
    ข้อดีของการใช้ library / helper ที่มากับ framework อีกข้อคือ เราไม่ต้องมาทำการดูแลรักษา แก้บั๊ก หรือเพิ่ม เพียงแต่เราดาวน์โหลด framework

3. Design Pattern

    วิธีการและเทคนิคในการเขียนโปรแกรมที่พบบ่อยๆ ที่ช่วยให้การวางโครงสร้างโปรแกรมเป็นไปอย่างมีระบบ ระเบียบเรียบร้อย  ง่ายต่อการดูแลรักษา (maintenance)  อีกทั้งยังช่วยเพิ่มประสิทธิภาพของโปรแกรมให้ทำงานดีขึ้น

4. Less Code & Faster Development

    การใช้ framework นั่นหมายถึงเราเขียน code น้อยลง แสดงว่าการพัฒนาโปรแกรมสามารถเป็นไปอย่างรวดเร็วยิ่งขึ้น

อ้างอิง

    https://atthakorn.com/ทำไมเราถึงต้องใช้-framework/ 


วันศุกร์ที่ 20 มกราคม พ.ศ. 2560

ปัญหาที่พบ/วิธีแก้/ส่วนที่แก้ไป

ปัญหาที่พบ

    เมื่อรันโค้ดแล้วพบจอขาวขึ้น


    แต่เมื่อไปรันบน Command line แล้วจะได้ผลดังนี้


    ซึ่งทำให้เห็นว่า โค้ดอ่านจำนวนได้ปกติ จึงไม่รู้สาเหตุตอนแรก

วิธีแก้

 
     

    จากที่เห็น ในคำสั่ง open ต้องให้ใส่ directory ให้ถูกต้อง เพราะ directory ที่เซิร์ฟรัน อยู่นอก folder ที่เก็บโค้ดไว้ เวลาจะเรียกใช้จึงต้องกำหนด directory ให้ถูกต้อง แต่ผมใส่แค่ชื่อไฟล์เพราะคิดว่า ไฟล์ CSV กับไฟล์โค้ดอยู่ที่เดียวกันจิงไม่จำเป็นต้องกำหนด directory 

ส่วนที่แก้ไป(นอกจากปัญหาที่เจอ)


                           

    เพื่อให้ดูข้อมูลใน CSV ได้ง่ายขึ้น




    

เว็บการเก็บผลสำรวจคนที่เกิดในแต่ละวัน

เว็บการเก็บผลสำรวจคนที่เกิดในแต่ละวัน

หน้าเว็บการใช้งาน


เมื่อใส่ชื่อลงไปในช่อง Name และเลือกวัน ข้อมูลจะถูกเก็บไปยัง CSV ไฟล์ 




เมื่อกด select date แล้ว จะมีข้อมูลอัพเดตขึ้นตามจำนวนผู้เกิดในวันต่างๆ


สไลด์ของงาน