วิบากกรรม django วันที่ 1

posted on 17 Oct 2009 20:50 by plynoi in Tech
เมื่อวานนึกไรไม่รู้ อยู่ๆ ก็อยากลองหัด django web framework ตัวนึงของ python ดู หลังจากเตะบอล (งานกีฬาของแผนกครับ) ตากฝนเปียกปอน ก็กลับบ้าน ทำตัว nerd ด้วยการหาทางลง django ซะ

ออกตัวก่อน
  • python : ผมรู้งูๆ ปลาๆ เขียน method ได้ read/write file ได้ (เพราะใช้ python automate อ่าน log บางอย่าง) ตอนนี้ลง python 2.6 กับ 3.1 ไว้ ตั้ง path ไปที่ 2.6
  • Apache : ผมเคยใช้ตอนเขียน php เคยใช้ Apache 2 ทำ url redirect ก็ไม่มีอะไร แก้ config file มันเอา http อะไรสักอย่าง doc บอกค่อนข้างละเอียด ไม่เคย set อะไรนอกจากนั้น
  • MySQL : DBMS ตัวเดียวที่เคยใช้งานจริง หาเลี้ยงชีพมาหลายปีคือ MSSQL ครับ My เคยใช้สมัยเรียน ก็ใช้ phpAdmin เอา ไม่มีอะไรมากกว่านั้น
เริ่มแรก ลองบน Ubuntu ก่อน ก็ดูตาม Installing Django with Apache on Ubuntu 9.04 (Jaunty) เอาครับวิธีก็ทำตามเค้าไป ดังนี้
  1. ลง django, apache, mysql : apt-get install libapache2-mod-python python-mysqldb python-django apache2 apache2-doc apache2-utils mysql-server
  2. เริ่ม setup apache ตาม apache บอกตรงๆ ว่ามึนครับ - -" set Named-Based Virtual Hosting set /etc/apache2/sites-available/ มันคืออะไรวะ - -" ปกติ config แค่ http. อะไรสักอย่งไม่ใช่เหรอ งง - -"
  3. โอเค มั่วข้างบนไปเรื่อยๆ จนได้ พอจะสั่ง django-admin.py startproject mysite ใน folder ที่ตั้งไว้ หา django-admin.py ไม่เจอ สั่ง restart apache เดี๊ยง .... แล้วไอ้ django-admin.py มันอยู่ไหนฟ่ะ T^T
มึนๆ อยู่ชั่วโมงกว่าๆ เอาวะ เราคงข้ามขั้นไป ไปลองใน windows ดีกว่า จอใหญ่กว่า น่าจะง่ายกว่า (มั้ง) ก็ทำตาม Django on Windows ครับ
  1. Load Django-1.1.1.tar มา แตกด้วย 7zip
  2. สั่ง python setup.py install โอเคผ่าน, django ทั้ง folder จะไปอยู่ใน python\Lib\site-packages, ส่วน django-admin ก็จะไอยู่ใน python\Scripts ด้วย
  3. สั่ง django-admin.py startproject mysite หา django-admin.py ไม่เจอ โอเค add python\Scripts ก็ยังผ่าน แต่แจ้งว่าหา django.core ไม่เจอ - -"
  4. add python\Lib\site-packages\django หรือ add folder django เองเข้าไปใน path ก็ยังไม่หาย search ดูถึงรู้ว่าต้องสร้าง PYTHONPATH สำหรับ module เสริมต่างๆ ของ python แล้วยัดเข้า path (python classpath hell สินะ - -" ก็ไม่เคยเขียน module มาก่อนนิ)
  5. เปรี๊ยง django-admin.py startproject mysite ได้ if svn_rev != u'SVN-unknown': invalid syntax ซะงั้น - -"
  6. นั่งหาใน net อยู่นานมากๆ ทั้งลงใหม่ เจอคนบอกอยู่สองแบบ คือ ถ้าใช้ python 3 จะเป็นแบบนี้ ไม่ก็คุณ load file มาแล้วมีปัญหา หรือแตก tar แล้วมีปัญหา
โอเค สั่ง python ดูก็ 2.6 โหลด file ใหม่, svn จาก trunk, เปลี่ยนตัวแตก tar ไงก็ไม่หาย จนหมดกำลังใจ แล้ว เซ็งแม่งงง นอนดีกว่า

ก่อนนอน นึกไงไม่รู้ ลองเอา python 3 ออก ทีนี้เข้าป่า เข้าพงไปเลยครับ สั่ง django-admin.py มันขึ้นเลยว่าจะให้ webservice หรือโปรแกรมอื่นรัน!!! ตะหงิดๆ ใจ ลง python 3 ต่อให้ไม่ set path ถ้าเอาออกมันก็ลาก python 2.6 พังได้แน่ๆ เอาออกหมดแล้วลงใหม่ตั้งแต่ต้น

สั่ง django-admin.py startproject mysite ผ่าน สั่ง python manage.py runserver ผ่าน เปิด 127.0.0.1:8000 ได้ เย้ นอนหลับลงแล้วเว้ย

สรุป 3 ชั่วโมง (หรือ 4 วะ) ในการลงเกิดจากความไม่พร้อมของผมเอง+ดันไปอ่าน tutorial แบบเล่นท่ายาก (ที่เขียนแล้วดูเหมือนง่าย) +ทะลึ่งลง python 2 version ที่ไม่ compat กันในเครื่องเดียวกัน - -"

ลองกับ ubuntu ใหม่ ลงแบบ manual แตก tar, python setup.py install,django-admin.py startproject mysite จบครับ ไม่ต้อง set path, pythonpath อะไรอีก (มัน set ให้หมดเลย) แต่ windows desktop ผมจอใหญ่ สะใจกว่าอ่ะ ^^

สรุป django tutorial ที่ดีที่สุคคือเวบมันเองนั่นแหละ

Comment

Comment:

Tweet

sad smile งามไส้
โซ้ย 2.6.5+Mysql ไปซะแล้ว

ว่าแต่มันเขียนให้ทำงานกับ Mysql ของ Xampp ได้ป่ะครับ

แบบว่างานเก่าผมทำใน Xampp มาตลอดน่ะครับ
แล้วพอดีมีเจ้านายเค้ามีงานให้ลอง นิดๆหน่อยๆ
ตอนนี้เลยไม่รู้จะ config มันยังไง

#2 By robocon (119.42.123.176) on 2010-07-31 16:25

Django+MySQL ใช้กับ Python 2.6 แล้วจะพบกับวิบากกรรมอีกรอบ ... แนะนำว่าใช้ Python 2.5 ดีกว่า

ส่วน Python 3 ไม่ต้องพูดถึง Django ยังไม่รองรับ

#1 By panuta (124.122.76.39) on 2009-10-20 21:06