CherryPy - Ứng dụng Demo
Trong chương này, chúng ta sẽ tập trung vào cách một ứng dụng được tạo trong khuôn khổ CherryPy.
Xem xét Photoblogứng dụng cho ứng dụng demo của CherryPy. Ứng dụng Photoblog là một blog bình thường nhưng văn bản chính sẽ là ảnh thay cho văn bản. Lợi ích chính của ứng dụng Photoblog là nhà phát triển có thể tập trung nhiều hơn vào thiết kế và triển khai.
Cấu trúc cơ bản - Thiết kế các thực thể
Các thực thể thiết kế cấu trúc cơ bản của một ứng dụng. Sau đây là các thực thể cho ứng dụng Photoblog:
- Film
- Photo
- Album
Sau đây là sơ đồ lớp cơ bản cho mối quan hệ thực thể -
Cấu trúc thiết kế
Như đã thảo luận trong chương trước, cấu trúc thiết kế của dự án sẽ như thể hiện trong ảnh chụp màn hình sau:
Hãy xem xét ứng dụng đã cho, có các thư mục con cho ứng dụng Photoblog. Các thư mục con là Ảnh, Album và Phim sẽ bao gồm controllers.py, models.py và server.py.
Về mặt chức năng, ứng dụng Photoblog sẽ cung cấp các API để thao tác các thực thể đó thông qua giao diện CRUD truyền thống - Tạo, Truy xuất, Cập nhật và Xóa.
Kết nối với Cơ sở dữ liệu
Một mô-đun lưu trữ bao gồm một tập hợp các hoạt động; kết nối với cơ sở dữ liệu là một trong những hoạt động.
Vì nó là một ứng dụng hoàn chỉnh, kết nối với cơ sở dữ liệu là bắt buộc đối với API và để duy trì chức năng Tạo, Truy xuất, Cập nhật và Xóa.
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())
Đấu trường trong đoạn mã trên sẽ là giao diện của chúng ta giữa trình quản lý lưu trữ bên dưới và lớp logic nghiệp vụ.
Chức năng kết nối thêm trình quản lý lưu trữ vào đối tượng đấu trường cho một RDBMS PostgreSQL.
Sau khi có được kết nối, chúng tôi có thể tạo các biểu mẫu theo yêu cầu của doanh nghiệp và hoàn thành việc áp dụng.
Điều quan trọng nhất trước khi tạo bất kỳ ứng dụng nào là entity mapping và thiết kế cấu trúc của ứng dụng.