ตัวอย่างการใช้ไพธอนทำห้องแสดงภาพผ่านเว็บ

ทำห้องแสดงภาพผ่านเว็บด้วยไพธอนอย่างง่าย
ความต้องการคือ

  • โยนภาพใส่ไดเรกทอรี่ (ด้วยมือ คือใช้เชลล์คัดลอกเอาเอง) แล้วให้โปรแกรมจัดการลดขนาดและสร้างภาพเล็กสำหรับแสดง
  • เก็บไฟล์ภาพเหมือนระบบไฟล์ปกติ เพื่อไม่ให้ระบบไฟล์ซับซ้อนเกินไป
  • ไม่แตะต้องไฟล์ภาพต้นฉบับ และต้องสามารถเข้าถึงได้
  • หมุนภาพอัตโนมัติ และให้มีหน้า admin สำหรับหมุนภาพในภายหลัง ในกรณีที่เป็นภาพที่ไม่มีข้อมูล Exif

ใช้มอดูล wsgi, Image และเรียกใช้โปรแกรมภายนอกคือ imagemagick

เริ่มด้วยติดตั้งแพกเกจ และเปิดใช้มอดูล wsgi

# aptitude install apache2 libapache2-mod-wsgi python-imaging imagemagick
# a2enmod wsgi

สมมุติว่ารากของ apache2 อยู่ที่ /var/www
เราจะให้ url ของห้องแสดงภาพเป็น http://www.example.com/pythongal
และเนื่องจากเราทำแบบง่าย จึงตัดเรื่องบัญชีผู้ใช้ออก ลักไก่ให้หน้าของ admin เป็น http://www.example.com/.admin-pythongal ซึ่งกำหนดในโปรแกรม

ติดตั้งโปรแกรมโดยแปลงตัวเป็น www-data ก่อน

# su www-data

ไปที่ไดเรคทอรี่ของ apache2 ดาวน์โหลดโปรแกรม ติดตั้งและปรับข้ออนุญาตให้เรียบร้อย

$ cd
$ wget http://www.thaitux.info/files/py/pythongal-511002.tar.gz
$ tar xfz pythongal-511002.tar.gz
$ chmod -R 755 pythongal

เสร็จแล้ว
ถ้าเราเอาอะไรใส่เข้าในไดเรกทอรี่ /var/www/pythongal เขาจะจัดการลดขนาดภาพและสร้างภาพเล็กให้เอง โดยเก็บไฟล์เหมือนระบบไฟล์ปกติ

ปรับแต่งหน้าตาของ html จากไฟล์ template.html
และปรับ css ที่ไฟล์ style.css
ปรับคุณสมบัติของโปรแกรมจากตัวแปรที่หัวไฟล์

ลองทดสอบหน้าตัวอย่างได้ที่ www.thaitux.info/pythongal
และหน้า admin สำหรับหมุนภาพที่ www.thaitux.info/.admin-pythongal

Post new comment

The content of this field is kept private and will not be shown publicly.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <pre> <blockquote> <img> <h3> <h4> <h5>
  • Lines and paragraphs break automatically.
  • E-Mail addresses are hidden with reCAPTCHA Mailhide.

More information about formatting options

CAPTCHA
This question is for testing whether you are a human visitor and to prevent automated spam submissions.