CherryPy - แอปพลิเคชันสาธิต
ในบทนี้เราจะเน้นไปที่การสร้างแอปพลิเคชันในกรอบ CherryPy
พิจารณา Photoblogแอปพลิเคชันสำหรับแอปพลิเคชั่นสาธิต CherryPy แอปพลิเคชัน Photoblog เป็นบล็อกปกติ แต่ข้อความหลักจะเป็นรูปถ่ายแทนข้อความ ข้อสังเกตหลักของแอปพลิเคชัน Photoblog คือผู้พัฒนาสามารถมุ่งเน้นไปที่การออกแบบและการใช้งานได้มากขึ้น
โครงสร้างพื้นฐาน - การออกแบบเอนทิตี
เอนทิตีออกแบบโครงสร้างพื้นฐานของแอปพลิเคชัน ต่อไปนี้เป็นเอนทิตีสำหรับแอปพลิเคชัน Photoblog -
- Film
- Photo
- Album
ต่อไปนี้เป็นแผนภาพคลาสพื้นฐานสำหรับความสัมพันธ์ของเอนทิตี -
โครงสร้างการออกแบบ
ตามที่กล่าวไว้ในบทที่แล้วโครงสร้างการออกแบบของโครงการจะเป็นดังที่แสดงในภาพหน้าจอต่อไปนี้ -
พิจารณาแอปพลิเคชันที่กำหนดซึ่งมีไดเร็กทอรีย่อยสำหรับแอปพลิเคชัน Photoblog ไดเรกทอรีย่อย ได้แก่ รูปภาพอัลบั้มและภาพยนตร์ซึ่งจะรวมถึง controllers.py, models.py และ server.py
ในทางปฏิบัติแอปพลิเคชัน Photoblog จะจัดเตรียม API เพื่อจัดการเอนทิตีเหล่านั้นผ่านอินเทอร์เฟซ CRUD แบบเดิม - สร้างเรียกคืนอัปเดตและลบ
การเชื่อมต่อกับฐานข้อมูล
โมดูลการจัดเก็บประกอบด้วยชุดการทำงาน การเชื่อมต่อกับฐานข้อมูลเป็นหนึ่งในการดำเนินการ
เนื่องจากเป็นแอปพลิเคชันที่สมบูรณ์การเชื่อมต่อกับฐานข้อมูลจึงเป็นสิ่งจำเป็นสำหรับ API และเพื่อรักษาการทำงานของ Create, Retrieve, Update และ Delete
import dejavu
arena = dejavu.Arena()
from model import Album, Film, Photo
def connect():
conf = {'Connect': "host=localhost dbname=Photoblog user=test password=test"}
arena.add_store("main", "postgres", conf)
arena.register_all(globals())
เวทีในโค้ดด้านบนจะเป็นส่วนต่อประสานระหว่างผู้จัดการหน่วยเก็บข้อมูลพื้นฐานและเลเยอร์ตรรกะทางธุรกิจ
ฟังก์ชันการเชื่อมต่อจะเพิ่มตัวจัดการหน่วยเก็บข้อมูลให้กับออบเจ็กต์อารีน่าสำหรับ PostgreSQL RDBMS
เมื่อได้รับการเชื่อมต่อแล้วเราสามารถสร้างแบบฟอร์มตามความต้องการทางธุรกิจและดำเนินการสมัคร
สิ่งที่สำคัญที่สุดก่อนที่จะสร้างแอปพลิเคชันใด ๆ คือ entity mapping และออกแบบโครงสร้างของแอปพลิเคชัน