เล่น Pylons-dev

ใช้ Pylons 0.9.6.2 แล้วงงๆ ก็เลยเอา Pylons-dev ใน trunk มาใช้เลย เวลา install ก็ลำบากนิดๆ ใช้ easy_install หมดไม่ได้ ขั้นตอนก็ตามนี้เลย

mkdir ~/Build
cd ~/Build
wget http://peak.telecommunity.com/dist/ez_setup.py
sudo python ez_setup.py
sudo aptitude install mercurial
hg clone https://www.knowledgetap.com/hg/pylons-dev
hg clone https://www.knowledgetap.com/hg/routes
 hg clone https://www.knowledgetap.com/hg/webhelpers
cd ~/Build/routes
sudo python setup.py develop
cd ~/Build/webhelpers
sudo python setup.py develop
cd ~/Build/pylons-dev
sudo python setup.py develop
sudo easy_install sqlalchemy
sudo easy_install genshi

มี SQLAlchemy กับ Genshi ด้วย จริงๆ มันไม่ต้องลงก็ได้แต่ผมจะใช้ก็เลยลงด้วย

พอลงเสร็จแล้วก็ผมก็เลยลองสร้าง app ดู

mkdir -p ~/Develop/pylons-app
cd ~/Develop/pylons-app
paster create -t pylons mydb

พอสั่ง paster create -t pylons mydb ก็รู้สึกว่ามันเกือบจะเป็น Turbogears ไปแล้ว🙂. ถ้าถามว่าจะลง AuthKit เลยหรือเปล่า ก็คงเทียบเคียงกันได้เลย. ในกรณีนี้ผมก็เลยไปว่าใช้ Genshi เป็น Template และใช้ SQLAlchemy ด้วย (พิมพ์ True) ลงไป

แล้วก็ข้อความต่างๆ อีกมากมาย …. ที่ผมก็ไม่ได้ดูหรอก หลังจากนั้นผมก็ cd เข้าไปใน project folder ชื่อ mydb

cd mydb

จากนั้นก็สั่ง run server ได้เลย มี reload ให้เองเวลาแก้ code ด้วย. มัน reload เร็วเหมือนกัน เมื่อเทียบกับแต่ก่อนที่ใช้ Turbogears กับ iBook G4 … แต่ก็แน่นอนล่ะ อาจจะเป็นเพราะว่าเครื่องผมเร็วขึ้น -_-!

paster serve --reload development.ini

พอ run แล้วก็เข้าไปดูเว็บที่ url: localhost:5000 ได้เลย … มันก็เป็นหน้า default นั้นเอง.

หลังจากนั้นก็ลองสร้าง controller (ผมใช้อีก terminal หนึ่งที่ไม่ต้องไปรบกวน paster serve ที่ run ไว้ก่อนหน้านี้)

paster controller person

ก็จะได้ controller ชื่อ person ขึ้นมาอยู่ที่ mydb/controller/person.py ในไฟล์ก็เขียนประมาณข้างล่าง

import logging

from pylons import request, response, session
from pylons import tmpl_context as c
from pylons.controllers.util import abort, redirect_to

from mydb.lib.base import BaseController, render
#import mydb.model as model

log = logging.getLogger(__name__)

class PersonController(BaseController):

    def index(self):
        # Return a rendered template
        #   return render('/template.mako')
        # or, Return a response
        return 'Hello World'

ใน comment แอบมี Mako อะไรนี้เป็น Template อีกแบบหนึ่ง เท่าดูคร่าวๆ น่าจะคล้ายๆ Template ของ Django (คือผมก็ไม่เคยเขียนทั้ง 2 อย่าง) แต่ถ้าชอบแบบ Turbogears และ Zope, Genshi ก็ท่าจะใกล้เคียงกว่า

พอสร้าง controller ก็เปิดเว็บดูได้เลย

เสร็จละ … เดี๋ยวไว้เขียนต่อเรื่อง Genshi กับ SQLAlchemy (อาจจะมี sqlalchemy.ext.declarative กับ Elixir) ในตอนต่อๆ ไป😉

ใส่ความเห็น

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / เปลี่ยนแปลง )

Twitter picture

You are commenting using your Twitter account. Log Out / เปลี่ยนแปลง )

Facebook photo

You are commenting using your Facebook account. Log Out / เปลี่ยนแปลง )

Google+ photo

You are commenting using your Google+ account. Log Out / เปลี่ยนแปลง )

Connecting to %s