[Một gói mỗi ngày] Django Extensions

By hientd, at: 12:00 Ngày 23 tháng 11 năm 2023

Thời gian đọc ước tính: __READING_TIME__ minutes

[One Package Per Day] - Django Extensions
[One Package Per Day] - Django Extensions

Một Gói Mỗi Ngày: Django Extensions

Chào mừng bạn trở lại với chuỗi bài viết "Một Gói Mỗi Ngày" của chúng tôi, nơi chúng ta khám phá các gói tiện ích có thể nâng cao các dự án Django của bạn. Hôm nay, chúng ta sẽ tìm hiểu về Django Extensions—một tập hợp các tiện ích mở rộng tùy chỉnh cho framework Django có thể làm tăng đáng kể năng suất và đơn giản hóa quá trình phát triển của bạn.

 

Cài đặt

 

Để cài đặt Django Extensions, chỉ cần sử dụng pip:

pip install django-extensions


Sau khi cài đặt, thêm 'django_extensions' vào INSTALLED_APPS trong cài đặt Django của bạn:

INSTALLED_APPS = [
    # Các ứng dụng đã cài đặt khác
    'django_extensions',
]

 

Bắt đầu

 

Sau khi cài đặt, bạn có thể bắt đầu sử dụng các lệnh và công cụ khác nhau được cung cấp bởi Django Extensions. Dưới đây là một số ví dụ nhanh để bạn bắt đầu:

  • shell_plus: Một shell nâng cao với tính năng tự động nhập.
    python manage.py shell_plus

  • runserver_plus: Server phát triển được cải thiện với khả năng xử lý lỗi tốt hơn.
    python manage.py runserver_plus

  • graph_models: Tạo hình ảnh trực quan về các mô hình của bạn.
    python manage.py graph_models -a -o my_project_database_schema.png

 

Các tính năng chính

 

Dưới đây là một số tính năng nổi bật của Django Extensions:

  1. Lệnh Quản lý

    • shell_plus: Tự động nhập tất cả các mô hình và cài đặt của bạn. => tại Glinteco, chúng tôi thường xuyên sử dụng điều này trong quá trình gỡ lỗi
       
    • runserver_plus: Cung cấp các tính năng bổ sung như xử lý lỗi và trình gỡ lỗi Werkzeug.
       
    • generate_secret_key: Tạo khóa bí mật mới cho dự án Django của bạn.
       
  2. Công cụ cơ sở dữ liệu

    • sqldiff: So sánh lược đồ cơ sở dữ liệu của bạn với các mô hình của bạn.
       
    • reset_db: Đặt lại cơ sở dữ liệu của bạn, hữu ích trong quá trình phát triển và kiểm thử.
       
  3. Nâng cao mô hình

    • AutoSlugField: Tạo slug duy nhất cho trường mô hình.
       
    • TimeStampedModel: Cung cấp các trường "created" và "modified" tự cập nhật.
       
  4. Mô hình đồ thị

    • graph_models: Tạo hình ảnh trực quan về lược đồ mô hình của bạn.
       
  5. Framework công việc

    • Jobs: Lên lịch và chạy các tác vụ ở các khoảng thời gian cụ thể, tương tự như các công việc cron.
       
  6. Mở rộng trường

    • UUIDField: Trường cho các định danh duy nhất toàn cầu.
       
    • EncryptedCharFieldEncryptedTextField: Các trường cung cấp mã hóa cho dữ liệu nhạy cảm.
       
  7. Nâng cao quản trị

    • ForeignKeyAutocompleteAdmin: Tính năng nâng cao giao diện quản trị thêm tự động hoàn thành cho các trường khóa ngoại.
       
    • Export Action ModelAdmin: Thêm hành động để xuất dữ liệu từ quản trị Django.
       
  8. Công cụ dành cho nhà phát triển

    • print_settings: In các cài đặt Django hiện tại ở định dạng dễ đọc.
       
    • show_urls: Hiển thị tất cả các URL trong dự án Django của bạn cùng với các hàm view tương ứng.
       
  9. Tiện ích kiểm thử

    • TestCase với chức năng nâng cao: Cung cấp các khẳng định và tiện ích bổ sung để kiểm thử các ứng dụng Django.
       
    • test_wipe_database: Lệnh quản lý để xóa cơ sở dữ liệu trước khi chạy các bài kiểm thử.
       
  10. Lệnh thông tin hệ thống

    • show_template_tags: Liệt kê tất cả các thẻ template có sẵn trong dự án.
       
    • show_template_filters: Liệt kê tất cả các bộ lọc template có sẵn trong dự án.
       
    • show_urls: Liệt kê tất cả các URL trong dự án. => tại Glinteco, chúng tôi thường xuyên sử dụng điều này trong quá trình điều tra urls
       
  11. Quản lý dữ liệu

    • dumpdataloaddata được nâng cao: Các phiên bản được cải tiến của các lệnh tích hợp sẵn của Django để dump và load dữ liệu, với các tùy chọn và tính năng bổ sung.
       

Ưu điểm và nhược điểm

 

Ưu điểm

  • Nâng cao năng suất với các lệnh quản lý nâng cao.
     
  • Cung cấp các công cụ hữu ích để quản lý cơ sở dữ liệu và mô hình.
     
  • Cải thiện việc gỡ lỗi và xử lý lỗi.
     

 

Nhược điểm

  • Một số tính năng có thể trùng lặp với các công cụ hoặc gói khác.
     
  • Có thể làm tăng độ phức tạp của dự án nếu không được sử dụng một cách khôn ngoan. => Chúng ta chỉ nên sử dụng điều này cho môi trường PHÁT TRIỂN.
     

Trường hợp sử dụng

 

  • Phát triển: Tương tác nhanh chóng với dự án của bạn bằng shell_plusrunserver_plus.
     
  • Quản lý cơ sở dữ liệu: Sử dụng sqldiffreset_db để quản lý và khắc phục sự cố lược đồ cơ sở dữ liệu của bạn.
     
  • Lên lịch tác vụ: Thực hiện các tác vụ được lên lịch bằng framework Jobs.

 

Thực tiễn tốt nhất

 

  • Thường xuyên sử dụng sqldiff để giữ cho các mô hình và lược đồ cơ sở dữ liệu của bạn được đồng bộ.
     
  • Sử dụng runserver_plus trong quá trình phát triển để xử lý lỗi tốt hơn.
     
  • Tạo và xem xét các biểu đồ mô hình để hiểu và ghi chép cấu trúc cơ sở dữ liệu của bạn.
     

Tùy chỉnh

 

Gói này cung cấp nhiều tùy chọn cấu hình để tùy chỉnh hành vi của nó.

Ví dụ: bạn có thể cấu hình shell_plus để sử dụng các shell khác nhau như IPython hoặc BPython bằng cách thêm những điều sau vào cài đặt của bạn:

SHELL_PLUS = "ipython"

 

Tích hợp

 

Django Extensions tích hợp liền mạch với các dự án Django hiện có. Bạn có thể sử dụng nó cùng với các gói Django phổ biến khác như Django Rest Framework hoặc Celery mà không có xung đột nào.

 

Những cân nhắc về hiệu suất

 

Mặc dù Django Extensions cung cấp nhiều công cụ mạnh mẽ, nhưng một số lệnh, chẳng hạn như graph_models, có thể tiêu tốn nhiều tài nguyên. Nên sử dụng các lệnh này vào những thời điểm không cao điểm hoặc trong môi trường phát triển.

 

So sánh với các gói tương tự

 

Django Extensions so với Django Debug Toolbar:

  • Django Debug Toolbar tập trung vào việc gỡ lỗi và phân tích hiệu suất thời gian thực, trong khi Django Extensions cung cấp nhiều công cụ phát triển hơn.

 

Django Extensions so với Lệnh quản lý Django:

  • Mặc dù Django bao gồm một số lệnh quản lý tích hợp sẵn, nhưng Django Extensions đã mở rộng đáng kể các lệnh và công cụ có sẵn.

 

Các gói hữu ích khác từ cộng đồng Django

 

 

Cộng đồng và Tài liệu

 

Django Extensions có một cộng đồng mạnh mẽ và tài liệu toàn diện có sẵn tại Tài liệu Django Extensions. Cộng đồng rất năng động trên GitHub và các diễn đàn khác, giúp bạn dễ dàng tìm kiếm hỗ trợ và đóng góp vào dự án.

 

Kết luận

 

Django Extensions là một gói mạnh mẽ có thể nâng cao đáng kể quy trình làm việc phát triển Django của bạn. Từ các lệnh shell được cải thiện đến các công cụ cơ sở dữ liệu nâng cao, nó cung cấp một bộ tính năng toàn diện có thể giúp bạn tiết kiệm thời gian và công sức. Hãy thử nó trong dự án tiếp theo của bạn và tự mình trải nghiệm sự gia tăng năng suất.

Hãy tiếp tục theo dõi chuỗi bài viết "Một Gói Mỗi Ngày" của chúng tôi sau này...

Tag list:
- Django
- Django best practices
- Django model utilization
- Django fields customization
- Django top packages
- Django Shell
- Django Extensions
- Django best packages
- Django shell plus

Liên quan

Django Memory Management

Đọc thêm
Django rest framework Python

Đọc thêm
Django rest framework Django

Đọc thêm

Theo dõi

Theo dõi bản tin của chúng tôi và không bao giờ bỏ lỡ những tin tức mới nhất.