Python
The Django template language
by Kowit on ก.ค..31, 2009, under Django, Programming, Python
เกี่ยวกับเอกสารนี้
เอกสารนี้อธิบายรายละเอียดเกี่ยวกับไวยากรณ์ของ Django Template . หรือมีข้อสงสัยหรือปัญหาการใช้งาน โปรดอ่าน The Django template language: For Python programmers.
Django template นั้นออกแบบมาอย่างสมดุลระหว่างความสามารถและความง่ายดาย. มันถูกออกแบบมาให้สามารถทำงานกับ HTML ได้สะดวก นั่นรวมถึง Text-Based อื่นๆด้วย.
หลักการ
ถ้าคุณเคยมีพื้นฐานการเขียนโปรแกรมที่ฝังโค้ดใน HTML แล้ว คุณจะรู้สึกเหมือนได้กลับบ้านอีกครั้ง การใช้ Django template จะเป็นอะไรที่ง่ายดาย แต่ถ้าหากคุณหวังว่าจะเห็นโค้ด Python ใน Django template แล้ว ต้องขอแสดงความเสียใจที่ทำให้ผิดหวัง
The Django template มีฟังชั่นเหมือนกับภาษาโปรแกรมทั่วไป มี if tags เพื่อตรวจสอบเงื่อนไข มี for loop เอาไว้วนให้ปวดหัวเล่น Django template จะรันเพียง template tag และจะไม่รัน Python code โดยเด็ดขาด
จำนวนเฉพาะกับตะแกรงเอราทอสเทนีส
by Kowit on ก.ค..30, 2009, under Programming, Python
ไปอ่านเจอมา เขียนไว้กันลืม
def primes(n):
"""
primes(n) --> primes
Return list of primes from 2 up to but not including n.
Uses Sieve of Erasth.
"""
if n < 2:
return []
nums = range(2,int(n))
p = []
while nums:
new_prime = nums[0]
p.append(new_prime)
for i in nums[1:]:
if i % new_prime == 0:
nums.remove(i)
nums.remove(nums[0])
return p
Django 1.1 ออกแล้ว
by Kowit on ก.ค..30, 2009, under Django, Programming
หลังจากติดโรคเลื่อน ในที่สุด Django 1.1 หลังจากติดโรคเลื่อนจนผมถอดใจ ในที่สุด Django ก้ได้ปล่อย stable version ออกมาเสียทีเมื่อเช้านี้
โดยรวมๆแล้วมีการเปลี่ยนแปลงที่ชัดเจนคือหน้าตาของ AdminSite โดยเฉพาะ slugField ที่เพิ่มข้อมูลให้อัตโนมัติ ไม่ต้อมานั่งกรอกเองให้เมื่อยตุ้ม
Aggregate ที่เมื่อก่อนทำไม่ได้ ในเวอร์ชั่นนี้สามารถทำได้แล้ว สามารถใช้อะไรอย่าง
>>> from django.db.models import Avg
>>> Book.objects.all().aggregate(Avg('price'))
{'price__avg': 34.35}
หล่อขึ้นเยอะมากเลยทีเดียว
และอีกหลายๆอย่างที่ขี้เกียจเขียน อยากรู้ไปอ่านเองดีกว่าครับ
ส่วนเรื่องภาษาไทยนั้น ผมได้ส่งฉบับล่าสุด โดยมีพี่เทพช่วยตรวจสอบให้ โดยพยายามให้เป็นไปในแนวทางเดียวกันกับ tl10n หลายๆจุดปรับปรุงให้ดีขึ้น ลดความกำกวมไปเยอะ โดยทาง Django ได้ปล่อย stable version หลังจากที่เพิ่มภาษาไทยเพียงสี่ชั่วโมง ฉิวเฉียด หวาดเสียวกันจนหยดสุดท้ายจริงๆ
ยังไงก็ขอให้สนุกกับการพัฒนาโปรแกรมนะครับ
Django 1.1RC ออกแล้ว เตรียมพร้อมกันหรือยัง
by Kowit on ก.ค..24, 2009, under Django
Django 1.1RC ออกมาแล้วเมื่อวันที่ 21 กรกฏาคม ที่ผ่านมา แต่พึงระลึกว่ายังไม่ใช่ตัวหลัก แนะนำว่าอย่าเพิ่งรีบร้อนเอามาใช้ในงานจริง เพราะว่าหากโชคดี คงจะได้เห็นตัวหลักในเวลาอันไกล้
ตอนนี้จะไม่มีการแก้ไขข้อความอะไรเพิ่มตาม หากต้องการจะแปล นี่เป็นโอกาสอันดีแล้วครับ ลุยกันเลย
หากต้องการจะลอง สามารถ DOwnload ได้ที่นี่
RegEx validate email for python
by Kowit on ก.ค..08, 2009, under Python
เขียนเว็บก็ที่ก็ต้องมานั่งเขียน validate email address ทุกที รำคาญมาก จดไว้ในนี้เสีย จะได้ไม่ต้องเสียเวลาไปค้นอีก
อย่างแรกคือกฎ วุ่นวายสับสนมากมาย ไปอ่านเพิ่มเติมกันเอาเองที่นี่ IETF แต่ถ้าเอาคร่าวๆก็ตามนี้
- Alpha Characters a-z and A-Z (ASCII 97-122 and 65-90)
- Numeric Characters (ASCII 48-57)
- Exclamation Point ‘!’ (ASCII 33)
- Number Sign ‘#’ (ASCII 35)
- Dollar Sign ‘$’ (ASCII 36)
- Percent Sign ‘%’ (ASCII 37)
- Ampersand ‘&’ (ASCII 38)
- Single Quote ”’ (ASCII 39)
- Asterisk ‘*’ (ASCII 42)
- Plus Sign ‘+’ (ASCII 43)
- Minus Sign/Dash/Hyphen ‘-’ (ASCII 45)
- Forward Slash ‘/’ (ASCII 47)
- Equals Sign ‘=’ (ASCII 61)
- Question Mark ‘?’ (ASCII 63)
- Caret ‘^’ (ASCII 94)
- Underscore ‘_’ (ASCII 95)
- Left Opening Brace ‘{‘ (ASCII 123)
- Right Opening Brace ‘}’ (ASCII 125)
- Tilde ‘~’ (ASCII 126)
หลังจากนั้นก็ได้ Pattern ตามนี้
[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?
ปล. เพิ่งรู้ว่าตัวอักษรประหลาดๆหลายตัวใช้ใน email Address ได้ด้วย
บรรทัดเดียวก็พอ #1 factorial
by Kowit on ก.ค..08, 2009, under Programming, Python
def fact(x): return (1 if x<1 else x * fact(x-1))
