How To Install web.py in XAMPP

web.py คืออะไร

มันคือ Framework สำหรับการเขียนเว็บด้วยภาษา python คล้ายๆ PHP ครับ สามารถเข้าไปดูเพิ่มเติมได้ที่นี่ ถามว่าทำไมเราไม่ใช้ php ไปล่ะ คำตอบคือ Python เป็นภาษาที่ค่อนข้างง่ายสำหรับมือใหม่ ไม่สลับซับซ้อน มีการบังคับให้จัดรูปแบบให้สวยงาม เหมาะสำหรับมือใหม่มาก แล้วถามว่ามันมีข้อเสียไหม ณ ตอนนี้ที่เริ่มศึกษามันช้ากว่า php เป็น 100 เท่า ซึ่งผมพอเดาได้ว่าผลมากจากไหน คาดว่ามาจาก Zend Engine คงจะไป Optimize อะไรสักอย่างให้ครับ แล้วตัว py ยังไม่ได้ compile มันเลยช้า วิธีนี้เป็นวิธีบน Ubuntu นะครับ ถ้าใช้บน Windows ก็ต้องปรับเอานิดหน่อย ถ้าไม่ได้จริงๆก็ถามได้ครับ เดี๋ยวลองไปหาข้อมูลให้

แล้วเราจะลง web.py ใส่ XAMPP ได้ยังไงล่ะ?

ก่อนอื่นเราต้องลง web.py ก่อน

หากต้องการข้อมูลล่าสุด คลิกที่นี่ครับ

  1. เปิด Terminal
  2. สั่ง wget -O webpy.tar.gz https://github.com/webpy/webpy/tarball/master
  3. สั่ง tar zxvf webpy.tar.gz
  4. sudo python setup.py install

การปรับให้ใช้กับ XAMPP ได้

ต้องลง XAMPP ก่อน โดยสามารถหาวิธีได้จากที่นี่ครับ

  1. สร้าง folder ที่ต้างการใน /opt/lampp/htdocs/ เช่น webpy แล้วเข้า folder นั้น
  2. สร้าง .htaccess ขึ้นมา มีเนื้อหาดังนี้
    Options +ExecCGI
    AddHandler cgi-script .py

ทดสอบการทำงาน

  1. สร้าง file ชื่ออะไรก็ได้ เช่น code.py
  2. ใส่เนื้อหาดังนี้
    #!/usr/bin/env python
    import web
    urls = (
        '/(.*)', 'hello'
    )
    app = web.application(urls, globals())
    class hello:        
        def GET(self, name):
            if not name: 
                name = 'World'
            return 'Hello, ' + name + '!'
    if __name__ == "__main__":
        #app.run()
        app.cgirun()
  3. ลองเข้าหน้าเว็บนั้นเช่น http://127.0.0.1/webpy/code.py/MIX

จบครับ

บันทึกความเข้าใจเกี่ยวกับเครื่องหมายเท่ากับ (=)

เครื่องหมายเท่ากับ(=) มีหน้าที่กำหนดค่า address ไม่ใช่กำหนดค่าในทุกกรณี

เป็นต้นว่ากำหนด a=b หมายถึง ให้ตัวแปร a ชี้ address ไปที่ตำแหน่งของตัวแปร b ดังนั้นตัวแปร a กับ b เป็นตัวเดียวกัน

โดยโปรแกรมจะไม่ไม่สร้าง object ใหม่ให้หากเราไม่กำหนด ในกรณีที่ตัวแปรอื่นมีค่าซ้ำกับอีกตัวแปรหนึ่ง มันจะชี้ไปที่เดียวกันเช่น
a=3
b=4
c=a+1
จากคำสั่งข้างต้นจะได้ว่า b จะมี address เท่ากับ c เพราะค่าเท่ากัน

แล้วทำไมกรณีที่สั่ง
a=3
b=a
a=4
ทำไม b ถึงไม่เป็น 4 เพราะตามลำดับจะทำจากขวามาซ้ายคือ สร้างตัวเลข 4 ใน ram ก่อน(หรือหาจากใน ram) แล้วให้ a ชี้ไปตำแหน่งนั้น โดยไม่ไปยุ่งกับตัวแปร b ดังนั้นค่า b จึงชี้ที่เดิม คือ 3