จากเรื่อง Automatic Documentation of Python Code using Doxygen

ศึกษาการใช้งาน Doxygen มาสักพักแล้ว เริ่มติดใจ จึงผูกมาใช้งานใน Python .. แต่ .. ใช่ว่า Doxygen จะเข้าใจ Python ได้ง่ายๆ เพราะ ถูกออกแบบมาสำหรับ C / Java .. ดังนั้นจึงต้องมีวิธี

ลองดู via Automatic Documentation of Python Code using Doxygen « // Internet Duct Tape. แล้วจะได้สองเรื่องคือ

– ใช้ DoxyPy แปลง (filter) Python Source code ก่อนเข้า Doxygen

– การ Set Doxyfile สำหรับ Python

อ่าน Python Thread Programming

บอกก่อนเลยว่า บทความนี้ ไม่ใช่ Tutorial แค่อยาก Share ความรู้สึกเท่านั้น พอดีในงานที่ทำอยู่ ออกแบบใช้ Thread ใน Python เพื่อสร้าง Server รองรับคำสั่ง Blar Blar .. ทำให้ต้องมานั่งศึกษา แต่โชคดีที่ คุ้นเคยกับ POSIX Thread ใน GNU C – Linux มาบ้าง

(ขอบคุณภาพจาก http://evanjones.ca/software/python-workqueue.html)

อ่านเพิ่มเติม

Unpacking Argument Lists ใน Python

แจกแจงสมาชิกใน Tuple ให้กลับมาเป็น Argument ดังตัวอย่าง

>>> range(3, 6) # normal call with separate arguments
[3, 4, 5]

>>> args = [3, 6]
>>> range(*args) # call with arguments unpacked from a list
[3, 4, 5]

อ่านเพิ่มเติม

Lambda Function in Python

บางครั้งมีงานที่ต้องทำคล้ายกันอยู่แล้วในส่งต้นข้อง function f1 f2 f3 … แต่เนื่องจากงานส่วนท้าย ที่แตกต่างกัน .. ทำให้ต้องใช้วิธี copy code ส่วนต้นของ f1 f2 f3 ออกเป็นสามชุด (ทั้งที่เหมือนกัน) .. หากต้องแก้ไขล่ะ ?? .. มีวิธีที่ดีกว่านี้ไหม ??

อ่านเพิ่มเติม

mod_python เพื่อใช้งานร่วมกับ apache

เนื่องจาก ต้องการพัฒนา website ด้วยภาษา python จึงจำเป็นต้องใช้ module interpreter ‘mod_python’
เพื่อให้ apache สามารถประมวลผลภาษา python ในรูปแบบต่างๆได้

LoadModule python_module modules/mod_python.so

สำหรับรูปแบบ ดังกล่าว เพื่อการใน python ไป ‘generate’ html สามารถทำได้คือ

1. แทรก python code เข้าไว้ใน html -> file.psp เรียกว่า ‘python server page’ เช่น

<%
import time
weekday = time.strftime(‘%A’, time.localtime(time.time()))
message = ‘Hello World! This is a wonderful %s.’ % weekday
%>

<html><body>
<h2><%= message %></h2>
</html></body>

สำหรับการ setup apache : .htaccess หรือ httpd.conf ให้เพิ่ม

AddHandler mod_python .psp
PythonHandler mod_python.psp

PythonDebug On

การระบุ handler mod_python.psp มีข้อกำหนดระบุไว้ให้ทำตาม เหมือน PHP และ ASP

สามารถดูตัวอย่างการทำงานได้จาก web ที่มี code

<%
import time
weekday = time.strftime(‘%A’, time.localtime(time.time()))
message = ‘Hello World! This is a wonderful %s.’ % weekday
%>

<html><body>
<h2><%= message %></h2>
</html></body>

2. เรียกใช้งาน code python ให้ทำงานเหมือนเป็น CGI -> file.py

AddHandler mod_python .py
PythonHandler pyinfo

ตั้งไว้ว่า เมื่อใดก็ตามที่เป็น file.py ให้ไปเรียก pyinfo (.py) ขึ้นมาทำงาน โดยมองหา function ‘handler’

from mod_python import apache

def handler(req):
req.content_type = ‘text/plain’
req.send_http_header()
req.write(“Hello World!”)
return apache.OK

แต่ถ้าต้องการเรียกใช้ file.py ใดๆก็ได้ขึ้นทำงาน จำเป็นต้องอาศัย

AddHandler mod_python .py
PythonHandler mod_python.publisher

ซึ่งจำเป็นจต้องทำตามข้อกำหนดที่ได้เตรียมไว้สำหรับ mod_python.publisher ดังมีตัวอย่าง code ตัวอย่าง

s = “””\
<html><body>
<h2>Hello %s!</h2>
</body></html>
“””

def index():
return s % ‘World’

def everybody():
return s % ‘everybody’

3. แล้วทำอย่างไรจะใช้กับ Django

เราสร้าง project ใน Django ด้วย django-admin.py startproject testme

สามารถ setup apache ด้วย

SetHandler python-program
PythonHandler django.core.handlers.modpython

SetEnv DJANGO_SETTINGS_MODULE testme.settings
# PythonOption django.root //

PythonDebug On
PythonPath “[‘/home/meeseen/domains/meeseen.com/public_html/test_pymod/django/’, ‘/usr/lib/python2.4/site-packages/django/’] + sys.path”

ลองทดสอบดู

อ้างอิง

http://webpython.codepoint.net/mod_python_tutorial

http://www.modpython.org/live/mod_python-3.3.1/doc-html/contents.html