5 ตุลาคม 2557

Published ตุลาคม 05, 2557 by with 0 comment

Django บน Python ตอนที่ 3: ตั้งค่ากับฐานข้อมูลและหน้า admin

Published ตุลาคม 05, 2557 by with 0 comment

Django บน Python : ตอนที่ 2 เริ่มต้น

หลังจากที่ผมได้แนะนำเริ่มต้นกับ Django บน Python ไปแล้วครับ บทความนี้เราจะเริ่มต้นกันครับ หากท่านใดยังไม่ได้ต้องติดตั้ง Django ให้ใช้คำสั่ง
pip install django django-nose 
ครับ
Read More
Published ตุลาคม 05, 2557 by with 0 comment

ใช้ pip ติดตั้งโมดูลง่ายกว่าเยอะ

สวัสดีครับทุกท่าน หลังจากที่ Python มี pip ทำให้การติดตั้งโมดูลเป็นไปได้อย่างสะดวก รวดเร็วยิ่งขึ้น ทั้ง Python 2 , 3 บทความนี้ท่านใดใช้ pip ติดตั้งโมดูลได้แล้ว สามารถข้ามไปได้เลยนะครับ  pip จะมาพร้อมกับ Python 2.7 กับ Python 3.4 + นะครับ สำหรับท่านใดที่ใช้รุ่นเก่ากว่านี้ให้ทำตามนี้ครับ https://pip.pypa.io/en/latest/installing.html
Read More

3 ตุลาคม 2557

Published ตุลาคม 03, 2557 by with 0 comment

เลือก Python Web Framework อย่างไรให้เหมาะสม

สวัสดีครับทุกท่าน จากบทความที่ผ่าน ๆ มา ผมได้แนะนำ Python Web Framework  ไปหลายตัว แต่ละตัวต่างมีจุดเด่นที่ไม่เหมือนกัน จึงเกิดคำถามเกิดขึ้นว่า Python Web Framework ตัวไหนเหมาะสมกับงานอะไร บทความนี้จะพาผู้อ่านไป เลือกงานที่เหมาะกับ Python Web Framework แต่ละตัวกันครับ
Read More
Published ตุลาคม 03, 2557 by with 0 comment

Flask web framework

Flaskเป็น web framework ที่ถูกพัฒนาในภาษา Python ถือว่าเป็น microframework ที่มีประสิทธิภาพอีกอันหนึ่งครับ ใช้ BSD licensed ด้วย ไม่ต้องกลัวเมื่อนำไปดัดแปลงพัฒนาต่อ
Read More

1 ตุลาคม 2557

Published ตุลาคม 01, 2557 by with 0 comment

Python Regular Expressions

สวัสดีครับทุกท่าน บทความนี้จะพูดถึงเรื่อง Python Regular Expressions กันครับ Regular Expressions (RegEx) คือ วิธีการตรวจสอบข้อมูล โดยกำหนดรูปแบบของสตริงที่ต้องการตรวจสอบที่เรียกว่า แพตเทิร์น(Pattern) มีต้นกำเนิดมาจากภาษา Perl ครับ

รูปแบบแพตเทิร์น(Pattern) ใน Python

Anchors
^ เริ่มต้นของสตริงหรือเริ่มต้นของบรรทัดในรูปแบบหลายบรรทัด
\A จุดเริ่มต้นของสตริง
$ สิ้นสุดของสตริงหรือจุดสิ้นสุดของเส้นในรูปแบบหลายบรรทัด
\Z สิ้นสุดของสตริง
\b ขอบเขตคำ
+ ตรงกับอย่างน้อยหนึ่งอักขระก่อนหน้านี้
* มีหรือไม่ก็ได้
| คือ "หรือ" , "OR"
haracter Classes
. (จุด) แทนตัวอักษรใด ๆ 1 ตัว ยกเว้นตัวอักษรขึ้นบรรทัดใหม่
\s เว้นบรรทัด
\S ไม่ได้เว้นบรรทัด
\B ไม่ขอบเขตคำ
< จุดเริ่มต้นของคำ
> สุดท้ายของคำ
\b ตรงกับขอบเขต string
\d แทนตัวเลข 0 ถึง 9
\D ตัวอักษรที่ไม่ใช่ตัวเลข
\w คำ
\W ไม่ใช่คำ
{จำนวนที่ซ้ำ} ระบุว่าต้องการการซ้ำซ้อนทั้งหมดกี่ตัว
อักขระพิเศษ
\n บรรทัดใหม่
\t Tab

กลุ่ม

(? ... ) Passive (ไม่จับ) กลุ่ม
[abc] ช่วง (A หรือ B หรือ C)
[^abc] ไม่ใช่ a หรือ b หรือ c
[a-z]    ใช้แทน a - z ตัวพิมพ์เล็ก
[a-z0-9]    ใช้แทน a-z ตัวพิมพ์เล็กและแทนเลข 0 - 9
[A-Z]    ใช้แทน A - Z ตัวพิมพ์ใหญ่
[A-Z0-9]    ใช้แทน A - Z ตัวพิมพ์ใหญ่และแทนเลข 0 - 9
[0-9]    ใช้แทนช่วง 0 - 9
ที่ผมยกมาด้านบนเป็นรูปแบบแพตเทิร์น(Pattern) ใน Python ที่ใช้กันบ่อย ๆ ครับ สำหรับเรื่อง รูปแบบแพตเทิร์น(Pattern) ไปศึกษารายละเอียดย่อย ๆ ได้ที่ http://www.cheatography.com/davechild/cheat-sheets/regular-expressions/
ในการใช้ Regular Expressions ใน  Python เราต้องใช้โมดูลที่มากับตัว Python ที่มีชื่อว่า re

findall

findall() เป็นฟังก์ชั่นที่มีประสิทธิภาพที่สุดในโมดูล re เราจะใช้ findall() ในการค้นหารูปแบบในตัวอย่างนี้

ผลลัพธ์
['Barack Obama', 'Bill Gates']

match

re.match()  ตรวจสอบว่า Regular Expressions ตรงที่จุดเริ่มต้นของสตริง เมื่อพบจะคืนค่า match object ออกมา ถ้าไม่พบจะคืนค่า None ออกมา ดังตัวอย่างต่อไปนี้
>>> import re
>>> m = p.match('tempo')
>>> m  
<_sre.SRE_Match object; span=(0, 5), match='tempo'>
ถ้าไม่พบข้อความ
>>> import re
>>> p.match("")
>>> print(p.match(""))
None

search

re.search() ใช้ค้นหารูปแบบภายในสตริงที่กำหนด ดังตัวอย่างต่อไปนี้
import re
print(re.search(r'\d\d\d', 'Your number is <b>123</b>').group(0))
ผลลัพธ์
123

การใช้ re.search() กับการเช็คเงื่อนไข if else
หากต้องการเช็คเงื่อนไข if else ว่าถ้าในสตริงมีรูปแบบที่ตรงกับรูปแบบ re ที่กำหนดไว้ ให้ทำเงื่อนไขใน if หากไม่ใช่ ให้ทำเงื่อนไขใน else สามารถทำได้โดยใช้โค้ดต่อไปนี้
ตัวอย่างเช่น หากกำหนดรูปแบบให้ค้นหา 0 - 9 หากพบให้แสดงเป็น 1 หากไม่พบ ให้แสดงเป็น 0
เขียนรูปแบบ re ได้เป็น [0-9]
ได้โค้ดดังนี้

ผลลัพธ์
1

sub

re.sub() เป็นคำสั่งที่ใช้แทนที่ตัวอักษรในสตริง ไม่ว่าจะเป็นคำหรือประโยค ดังตัวอย่างต่อไปนี้
import re
a = "คน เดิน ด้วย เครื่องบิน"
b = re.sub("เดิน", "บิน", a)
print(b)
ผลลัพธ์
คน บิน ด้วย เครื่องบิน

compile

re.compile() เป็นคำสั่งที่ใช้รวบรวมรูปแบบ (Pattern) เป็นวัตถุเก็บรูปแบบที่ต้องการ ดังตัวอย่างต่อไปนี้
import re
regex = re.compile(r'([a-z]+)', re.I)
print(regex.findall("123hello456world789"))
ผลลัพธ์
['hello', 'world']

split

re.split เป็นคำสั่งที่ใช้แยกสตริงตามที่กำหนด เราสามารถนำมาใช้ได้กับ Regular Expressions ดังตัวอย่างต่อไปนี้
>>> import re
>>> re.split('\W+','This... is a test.')
['This', 'is', 'a', 'test', '']
จบแล้วครับสำหรับเรื่อง Python Regular Expressions ครับ เวลาเรียกใช้ re ต่าง ๆ อย่าลืม import re กับตรวจสอบรูปแบบ Regular Expressions ให้ถูกต้องด้วยนะครับ
สำหรับท่าใดที่อยากลองเขียน Regular Expressions ดู สามารถเข้าไปลองเขียนเล่นได้ที่ http://re-try.appspot.com/ 
ติดตามบทความต่อไปนะครับ
ขอบคุณครับ
Read More

27 กันยายน 2557

Published กันยายน 27, 2557 by with 1 comment

สร้างเว็บด้วย Tornado web framework

Tornado เป็น web framework ที่เขียนโดย Python และยังเป็น asynchronous networking library พัฒนาโดยทีมงาน FriendFeed เป็นบริษัทที่ Facebook ซื้อมาเมื่อปี ค.ศ.2009 และ Tornado ก็เปิดโค้ดหลังจากนั้น
Read More

26 กันยายน 2557

Published กันยายน 26, 2557 by with 0 comment

Input การรับค่าข้อมูลจากคีย์บอร์ดใน Python

สวัสดีทุกท่านครับ การรับค่าข้อมูล (Input) จากคีย์บอร์ดใน Python เป็นเรื่องพื้นฐานที่นักพัฒนาโปรแกรมไม่ว่าภาษาไหนก็ต้องเรียนรู้ด้วยครับ เมื่อตอน Python 2 มีคำสั่งรับค่าข้อมูลจากคีย์บอร์ดด้วยคำสั่ง raw_input()
Read More

20 กันยายน 2557

Published กันยายน 20, 2557 by with 0 comment

การสร้าง Python Extension C/C++ ด้วย Cython

  สวัสดีทุกท่านครับ ในช่วงหลัง ๆ นี้ความนิยมการเขียนโปรแกรมของนักพัฒนาส่วนใหญ่ลดการเขียนโปรแกรมในภาษาระดับสูง เช่น ภาษา C/C++ เพราะการพัฒนาที่ใช้เวลานานและมีความเสี่ยงจากการมี Bug ค่อนข้างมากตามมา นักพัฒนาจึงมาเขียนโปรแกรมในภาษาอื่น ๆ เช่น Python , PHP , C# , JAVA เป็นต้น แทนครับ
Read More
Published กันยายน 20, 2557 by with 0 comment

Mezzanine CMS จาก Django ด้วยภาษา Python


สวัสดีทุกท่านครับ บทความนี้ผมจะแนะนำ Mezzanine CMS จาก Django ด้วยภาษา Python
Mezzanine เป็น CMS ที่ถูกออกแบบมาอย่างดี มีระบบต่าง ๆ พร้อมมาตั้งแต่ต้นครับ พัฒนามาจาก Django ด้วยภาษา Python รองรับทั้ง Python 2 และ Python 3 ครับ
Read More