วันจันทร์ที่ 30 ธันวาคม พ.ศ. 2556

การใช้ mercurial เบื้องต้น

mercurial
             คือ โปรแกรมที่ใช้ทำ control version สำหรับไฟร์โปรเจ็ค หรืองานต่างๆ ที่ต้องมีการเป็นแปลง update อยู่เสมอ ซึ่งการทำ control version ก็จะช่วยให้การเปลี่ยนแปลง หรือการ update นั้นยังคงอยู่เป็น version ที่เรา update


เริ่มต้นใช้งาน mercurial
             ในตัวอย่างนี้จะใช้งาน mercurial กับ project django ที่ชื่อ test_mercurial

             1.เริ่มติดตั้ง mercurial โดยเปิด command line พิมพ์คำสั่ง

                   sudo apt-get install mercurial


            2. cd เข้าไปยัง directory project ที่จะมีการเปลี่ยนแปลง แล้วทำการเริ่ม start mercurial โดยใช้คำสั่ง

                  hg init


           3. ทดสอบพิมพ์คำสั่ง

                 hg status

              ซึ่งเป็นคำสั่งในการตรวจสอบการเปลี่ยนแปลง version ของ project ดังภาพ


              จะเห็นได้ว่ามีไฟร์ต่างๆปรากฎขึ้นมาพร้องมีเรื่องหมาย ? อยู่ข้างหน้าซึ่งหมายถึงเป็นไฟร์ที่ถูกสร้างขึ้นมาใหม่ รอให้เราทำการ add เพื่อทำเป็น version ใหม่


           4. เริ่มทำการ add โดยใช้คำสั่ง

                   hg add

               ซึ่งเป็นคำสั่ง add ไฟรทั้งหมดใน project แล้วเมื่อพิ่ม hg status ก็จะเป็นดังรูป


               ในการ add ไฟร์เราสามารถที่จะ add ไฟร์ เลือกบ้างไฟร์ได้โดยใช้คำสั่ง

                    hg add filename

              คือ hg add ตามด้วยชื่อไฟร์ที่เราต้องการจะ add นอกจากการ add แล้วยังมีคำสั่งที่เกี่ยวข้องคือเราสามารถนำไฟร์ที่ add ออกได้โดยมีคำสั่ง

                   hg revert *

              เป็นการนำไฟร์ทั้งหมดที่ทำการ add ไปออก

                  hg revert filename

              เป็นการเลือกบางไฟร์ที่ทำการ add ไปออกโดยจะพิมพ์ชื่อไฟร์ที่ต้องการนำออกลงไปแทน filemane


         5. ต่อไปจะทำการ ignore ไฟร์ที่เราไม่สนใจ เช่นไฟร์ .pyc .elc ซึ่งไฟร์เหล่านี้เราไม่จำเป็นต้อง add เข้าไปใน version ของเรา ทำการสร้างไฟร์เก็บไว้ใน project ที่เราต้องการจะ ignore ตั้งชื่อไฟร์ว่า .hgignore ในไฟร์ทำการพิมพ์ข้อความ
              
          # use glob syntax.
          syntax: glob

          *.elc
          *.pyc
          *~ 

           เสร็จแล้วทำการบันทึกไฟร์


         6. ทำการ hg revert * ไฟร์ที่ทำการ add ทั้งหมดแล้วการการ hg add เข้าไปใหม่จะเห็นได้ว่าไฟร์ที่เราได้ทำการ ignore จะหายไป



         7. ทดลองทำการ commit คือการอัพเพื่อสร้าง version โดยใช้คำสั่ง

                 hg commit -m "start project test_mercurial" -u kla

            เป็นคำสั่ง up version โดยข้อความที่อยู่ใน " " เป็นข้อความที่บอกถึงการเปลี่ยนแปลง kla คือชื่อ user ที่ up version


        8. ทำการ run server mercurial เพื่อดู version ที่เราได้ทำการ up ใช้คำสั่ง

               hg runserve -p 9000

           แล้วเปิด Broser เข้าไปยัง url ที่ run server : 127.0.0.1:9000 ก็จะได้หน้าข้อมูล version ทั้งหมดที่เราได้ทำการ up



           ซึ่งในการทำเกี่ยวกับ control version นี้มีเว็ปที่ให้บริการในการ up version ไปเก็บไว้บนเว็ปเพื่อความสะดวกในการ แชร์ การทำงานหลายคน และการ backup เช่นเว็ป bitbucket.com ตัวอย่างคำสั่งที่ใช้ up version ขึ้น bitbucket

          hg push https://pookla223@bitbucket.org/pookla223/myapp


=======================================================================

วันเสาร์ที่ 21 ธันวาคม พ.ศ. 2556

วันพุธที่ 11 ธันวาคม พ.ศ. 2556

สรุป Django W6-2

-วิธีการใช้งาน Django เบื้องต้น
        http://b31025.blogspot.com/2013/11/week4-django.html


-เริ่มต้นการใช้งาน Template
        http://b31025.blogspot.com/2013/12/template.html


-(tutorial part 1) การสร้าง Django App อย่างง่าย, การกำหนดค่าใน models, ทดลองใช้ python shell
       http://b31025.blogspot.com/2013/11/django-tutorial-part-1-4.html


-(tutorial part 2) รู้จัก admin site, การจัดหน้า admin, จัดลำดับ เพิ่ม ลบ ข้อมูล
       http://b31025.blogspot.com/2013/11/django-tutorial-part-1-4.html


-(tutorial part 3) เขียนส่วนการแสดงผล HttpResponse( .. ) views.py
       http://b31025.blogspot.com/2013/11/django-tutorial-part-1-4.html


-(tutorial part 4) รู้จักการใช้ form ใน app
       http://b31025.blogspot.com/2013/11/django-tutorial-part-1-4.html

-tutorial version ตั้งแต่เริ่มสร้าง project
       https://bitbucket.org/pookla223/djangotutorial/commits/all



=======================================================================


วันอังคารที่ 10 ธันวาคม พ.ศ. 2556

เริ่มต้นการใช้งาน Template

         template คือ เป็นส่วนที่คอยช่วยจัดการแยกส่วนการแสดงผลออกจากโค้ด กล่าวคือเป็นการแยกส่วนของโค้ด python ซึ่งจะทำหน้าที่ในการคำนวณค่า ออกจากโค้ด HTML ซึ่งจะเป็น form ที่สร้างขึ้น สามารถเชื่อมต่อกับโค้ด python เพื่อนำไปแสดงผลได้


ขั้นตอนและวิธีการสร้าง template
         1. ทำการสร้าง directory ชื่อ template ในไฟร์โปรเจค



         2. เมื่อทำการสร้าง directory เรียบร้อยแล้วให้ทำการเพิ่ม path ของ directory template เข้าไปในโปรเจคโดย เข้าไปแก้ไขไฟร์ settings.py แล้วทำการเพิ่ม TEMPLATE_DIRS = ( os.path.join(BASE_DIR, 'template'), ) เข้าไปในไฟร์ดังรูป




          3. ต่อไปก็จะเป็นส่วนของการแยกโค้ด python กับส่วนการแสดงผลออกจากกัน โดยเริ่มจากการสร้างไฟร์ template/datetime.html ซึ่งไฟร์นี้จะทำหน้าที่เก็บโค้ด html ที่เป็น form ใช้ในกาแสดงผล ทำการแก้ไขไฟร์ template/datetime.html ดังนี้

        <html><head>
                <title>Time </title>
                </head><body><center><font size='7' color = 'orange'><B>It is now {{ current_date }}.</B></font><BR>   
                </center>

        </body></html>

           จากโค้ดจะเห็นได้ว่าเป็นโค้ด html ที่เก็บส่วนการแสดงผลและมีการเชื่อมต่อกับ attribute ที่ชื่อ current_date ซึ่งเป็น attribute เป็นตัวเชื่อมระหว่าตัวโค้ดกับส่วนการแสดงผล


          4. ทำการสร้างและแก้ไขไฟร์ django/views.py ซึ่งเป็นส่วนของโค้ด python และเป็นส่วนการคำนวณค่าดังนี้

           from django.template.loader import get_template
           from django.template import  Template, Context
           from django.http import HttpResponse
           import datetime

           def current_datetime(request):
                   now = datetime.datetime.now()
                   t = get_template('datetime.html')
                   html = t.render(Context({'current_date': now})

                   return HttpResponse(html)

              จากโค้ดจะเห็นว่าเป็นโค้ด python ที่ทำการดึง วัน เวลาปัจจุบัน และทำการดึง form จาก template ที่ได้เขียนไว้แล้วใส่ค่าเวลาปัจจุบันลงไปใน attribute ชื่อ current_date เพื่อทำการแสดงค่า


           5. ทำการเพิ่ม url ในไฟร์ django/urls.py ไปยัง class current_datetime

                 url(r'^calendar/', 'mytemplate.mycal.current_datetime'),


           6. เมื่อทำการ runserver แล้วทำการเข้าไปยัง url/calender (127.0.0.1:8000/calender/) จะได้ผลดังภาพ



          ก็จะได้วิธีการสร้าง template เบื้องต้นซึ่งจะเห็นได้ว่าการใช้ template ในการแยกส่วนโค้ดออกจากการแสดงผลจะทำให้ง่ายต่อการอ่าน ทำความเข้าใจ ไม่สับสน และทำการแก้ไขง่าย
          นอกจากนี้การเขียน form html ที่ช่วยในการแสดงผลยังมีอีกหลายรูปแบบซึ่งสามารถศึกษาเพิ่มเติมได้ที่ https://docs.djangoproject.com/en/dev/ref/templates/builtins/


=======================================================================