7 ตุลาคม 2557

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

Django บน Python ตอนที่ 7: Template

Template เป็นแม่แบบสำหรับหน้าเว็บเพจ โดยสามารถเขียนในรูปแบบ HTML ได้ ช่วยให้เราสามารถปรับแต่งได้อย่างอิสระ โดย Template จะถูกเรียกนำมาใช้งานร่วมกับ Views โดยจะทำการประมวลผลร่วมกับคำสั่งต่าง ๆ และ models ของ  Django ในภาษา Python แล้วจะส่งหน้าเว็บเพจออกมาในรูปแบบ HTML
Read More
Published ตุลาคม 07, 2557 by with 0 comment

Django บน Python ตอนที่ 6: models

สวัสดีครับทุกท่าน บทความนี้จะพาทุกท่านไปรู้กับและเขียน models ใน Django บน Python ครับ
models (โมเดล) เป็นแบบจำลอง เป็นส่วนขยายความสามารถของโปรแกรมในคอมพิวเตอร์ ในการเขียนโปรแกรมในภาษาต่าง ๆ จะมี lib มาให้ แต่อาจจะไม่เพียงต่อหรือตอบสนองการใช้งาน จึงต้องเขียน models ขึ้นมาเพิ่ม
Read More
Published ตุลาคม 07, 2557 by with 0 comment

Django บน Python ตอนที่ 5: Views และ URLconfs

หลักการทำงานของ Views และ URLconfs ใน Django
หลักการทำงานของ Views และ URLconfs ใน Django
สวัสดีทุกท่านครับ บทความนี้ผมจะพูดถึงเรื่อง Views และ URLconfs ครับ
Views คือ หน้าแสดงผลบนเว็บ เป็นไฟล์ที่กำหนดการแสดงผลลัพธ์บนเว็บเพจ คือไฟล์ View.py ใน Django
ส่วน URLconfs คือ ไฟล์การตั้งค่าลิงค์ของเว็บเพจใน Django คือไฟล์ urls.py
Read More

5 ตุลาคม 2557

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

Django บน Python ตอนที่ 4: ตั้งค่าให้รองรับภาษาไทยและโซนเวลาไทย

หน้า Login admin
สวัสดีทุกท่านครับ บทความนี้เราจะพาทุกท่านไป ตั้งค่าให้รองรับภาษาไทยและโซนเวลาไทย โดยอันที่จริงแล้ว Django รองรับภาษาไทยมาตั้งแต่ต้น โดยมีขั้นตอนง่าย ๆ ดังนี้ครับ
Read More
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