Django là một Framework giúp bạn lập trình web nhanh hơn và tốt hơn so với các framework như Flask mà lại dễ hơn nhiều. Django có tài liệu rất tốt và tuân theo nguyên tắc DRY (Đừng lặp lại chính mình) trong khi những Framework khác không quan tâm nhiều về điều này. Django cũng hỗ trợ ORM (Object Relistic Mapping).

Gần đây, trong quá trình phát triển tiếp một project trên Django Framework mình gặp vấn để là làm sao hiểu được cấu trúc của dự án cũ trước đó (dự án cũ không có tài liệu ADD). Sau thời gian bỏ công tìm hiểu thì cuối cùng cũng mày mò ra phương pháp xuất ra Entity Relationship Diagram (ERD) bằng cách sử dụng thư viện pygraphviz.

Với môi trường phát triển là Linux thì việc cài đặt pygraphviz quá đơn giản bằng lệnh sudo blabla.. Tuy nhiên việc cài trên Window hơi phức tạp và dưới đây là cách thực hiện.

Cài Graphviz và thư viện python pygraphviz trên Window

Môi trường trong ví dụ này là Window 10 64bit và Python 3.9

Sau khi hoàn thành các bước trên, có thể cài đặt thư viện Python của Graphviz bằng lệnh

pip install pygraphviz

Cấu hình project Django

Chỉnh sửa INSTALLED_APPS trong setting.py: thêm "django_extensions"


INSTALLED_APPS = [
    # Django modules
    # .....
    "django_extensions",
]

Xuất Data Modeling Diagram

Sau khi đã thực hiện xong các bước cài đặt, chạy lệnh dưới dây đây sẽ xuất ra được Entity Relationship Diagram dưới dạng tệp hình ảnh, giúp cho developer có được cái nhìn tổng thể về cấu trúc dữ liệu của project.


python ./manage.py graph_models --pygraphviz -a -g -o database_visualization.png