วันพุธที่ 10 พฤษภาคม พ.ศ. 2560

วิดีโอนำเสนอแอพ Animals





Assignment : ทำแอพ Animals รวมข้อมูลสัตว์ #6

    - ตกแต่งหน้าตาเว็บแอพให้ดูสวยงาม








    - ทำหน้า About







    - push โค้ดขึ้น bitbucket >> https://bitbucket.org/thakdanai_khunsaen/park

    - นำเว็บแอพขึ้น pythonanywhere >> http://thakdanai.pythonanywhere.com/park

Assignment : ทำแอพ Animals รวมข้อมูลสัตว์ #5

    - ปรับปรุง model อีกครั้ง โดยมีการรวม Pending เข้าไปใน Animal และสร้างตัวแปร status มาใช้แยกเอาว่าอยู่ในระหว่างรอการตวรจสอบ หรือเผยแพร่แล้ว และแยก image ออกไปเป็น class AnimalImage เพื่อที่จะได้เก็บรูปของสัตว์แต่ละตัวได้หลายรูป



    - แก้ไขส่วนที่ส่งข้อมูลออกไปแสดงผลให้ filter เฉพาะที่มี status เป็น published เท่านั้น




    - แก้ไข admin.py เพื่อให้ส่วนของ model AnimalImage มารวมอยู่ในหน้าเดียวกับการเพิ่มข้อมูลสัตว์ โดยจะสร้างเป็น class Inline



เสริม class Inline จะมีอยู่สองแบบ ซึ่งจะแตกต่างกันแค่ส่วนแสดงผลแค่นั้น ดังนี้



Assignment : ทำแอพ Animals รวมข้อมูลสัตว์ #4

    - ปรับปรุงหน้าค้นหาให้สามารถค้นหาเฉพาะส่วนได้



ซึ่งเมดธอดก็จะทำการรับค่าเข้ามาเช็คด้วยว่า ให้ค้นหาจากทั้งหมดหรือค้นหาเฉพาะส่วนไหน


    - สร้าง model ที่ใช้เก็บข้อมูลสัตว์ที่เพิ่มโดยผู้ใช้ ซึ่่งต้องแยกไว้ต่างหาก เพื่อทำการตรวจสอบก่อนนำขึ้นหน้าเว็บแอพ



    - สร้างหน้า template ที่จะให้ผู้ใช้เพิ่มข้อมูล และรับค่าจากหน้านั้นไปเพิ่มใน model Pending





    - สร้างเมธอดใน admin.py เพื่อเพิ่มคำสั่งในหน้า admin ของ Pending สำหรับโอนย้ายข้อมูลจาก model Pending ไป model Animal หลังจากตรวจสอบแล้ว



Assignment : ทำแอพ Animals รวมข้อมูลสัตว์ #3

    - จากแก้ไข model ใหม่ โดยจะเพิ่ม info habitat แทนการดึงข้อมูลจากไฟล์ text และ picture เข้าไป(ไม่ต้องก็อปรูปไปใส่โฟลเดอร์เองแล้ว เย้!)


    แต่จากที่หาข้อมูลพบว่ารูปที่อัพโหลดผ่าน model ต้องเก็บในโฟลเดอร์ media แทน static เนื่องจากเหตุผลทางความปลอดภัยบางอย่าง ดังนั้นจึงต้องทำการเพิ่มการตั้งค่าใน setting.py เล็กน้อย



    - สร้างเมธอดแก้ไขชื่อไฟล์ที่อัพโหลดเข้า model ให้เป็นชื่อของสัตว์ เพื่อง่ายต่อการเรียกใช้



    - เนื่องจาก info และ habitat เป็น TextField เมื่อแสดงผลข้อความออกมาจะได้เป็นข้อความต่อกันยาวๆ ดังนั้นจึงต่อมีการใช้คำสั่งเพื่อกำหนดรูปแบบของ TextField ในหน้า template ด้วย



    - ทำส่วนของการค้นหารายชื่อสัตว์ โดยจะรับค่าจากช่อง input ไป filter หารายชื่อออกมา




    ซึ่งตรงนี้จะต้องใช้ Q เข้ามาช่วยให้สามารถ filter ในรูปแบบของการ OR ได้ หรือก็คือ หากข้อความที่รับมาอยู่ในส่วนใดส่วนนึงของ model ของสัตว์ ก็จะนำรายชื่อของสัตว์ตัวนั้นๆออกไปแสดงด้วย




Assignment : ทำแอพ Animals รวมข้อมูลสัตว์ #2

    - ทำการตกแต่งหน้ารายชื่อสัตว์ให้มีสีสันต์ขึ้นมาหน่อย และเพิ่มปุ่มเพื่อลิงค์ไปหน้ารายชื่อหมวดอื่นๆได้



    - พยายามทำการเรียกใช้ไฟล์ text ในหน้าข้อมูลสัตว์ แต่ก็พบกับหน้า Error จึงต้องรอกลับไปแก้ไขก่อน



Assignment : ทำแอพ Animals รวมข้อมูลสัตว์ #1

    ช่วงก่อนสงกรานต์ ได้มี Assignment มาว่า ให้ทำเว็บแอพอะไรก็ได้ที่อยากทำ และเนื่องจากช่วงนั้นนั่งดูสารคดี NAT GEO WILD อยู่บ่อยๆพอดี จึงปิ๊งไอเดียตัดสินใจทำแอพรวบรวมข้อมูลสัตว์ขึ้น เพราะงั้นบทความต่อจากนี้ก็จะเป็นการอัพเดทความคืบหน้า Assignment กัน


    - สร้าง model ที่คิดว่าจะใช้ในการเก็บข้อมูลขึ้นมาก่อน ซึ่งจะประกอบไปด้วย

  • thai_name ชื่อไทย
  • name ชื่ออังกฤษ
  • class_name ประเภทหรือชั้นของสัตว์
  • order อันดับของสัตว์
  • family วงศ์ของสัตว์

    - การเพิ่มข้อมูลสัตว์ในตอนนี้ต้องไปเพิ่มที่หน้า admin และต้องก็อปรูปภาพสัตว์ไปใส่ในโฟลเดอร์เอง โดยจะแยกโฟล์เดอร์เป็นไอดีของสัตว์แต่ละตัว



    - ทำการสร้างหน้าหลักๆขึ้นมาสามหน้า คือ หน้าแรก หน้ารายชื่อสัตว์ และหน้าข้อมูลของสัตว์

urls.py

template ที่ใช้


    - ในหน้าแรกนั้นจะมีปุ่มลิงค์ไปหาหน้ารายชื่อสัตว์ แบ่งเป็นหมวดหมู่ต่างๆ ซึ่งจะมีจำนวนสัตว์ในแต่ละหมวดหมู่แสดงบอกไว้ด้วย โดยจะรับค่าจำนวนสัตว์มาจาก views.py




    - หน้ารายชื่อสัตว์ที่ตอนนี้ยังขาวโพลนอยู่นั้น จะเป็นหน้าที่ลิงค์มาจากหน้าแรกโดยจะรับค่าหมวดหมู่จากปุ่มของหน้าแรกด้วย เพิ่มนำมา filter แสดงรายชื่อเฉพาะหมวดหมู่นั้นๆ




    - หน้าข้อมูลสัตว์ ในตอนนี้ยังให้มีการแสดงผลแค่รูปและข้อมูลจากโมเดลอยู่


ทำแอพบัญชีรายรับ-รายจ่าย #5

    - ตกแต่งเพิ่มเติม เพิ่มการแสดงผลหากยังไม่มีข้อมูล



    - ทำส่วนของการ import โดยเมื่อมีการ import ไฟล์ csv เข้ามาจะให้ทำการนำไฟล์นั้นไปเก็บไว้ในโฟลเดอร์ upload ก่อน เนื่องจากเว็บแอพไม่สามารถดึงข้อมูลจากไฟล์บนเครื่องผู้ใช้โดยตรงได้ จากนั้นจึงค่อยดึงข้อมูลในไฟล์ไปประมวลผลเพื่อเพิ่มลงใน model โดยจะมี checkbox overwrite ให้เลือก หาต้องการ import ในแบบ overwrite




    - สร้างเมธอดเช็ครายการที่ import ว่าซ้ำกับที่มีอยู่แล้วหรือไม่ หากซ้ำก็จะข้ามรายการนั้นไป