Thông báo: Download 4 khóa học Python từ cơ bản đến nâng cao tại đây.
Sử dụng lệnh loaddata trong Django với Python
Trong bài viết này, mình sẽ hướng dẫn bạn cách sử dụng lệnh loaddata
của Django để nhập dữ liệu từ các file fixture vào cơ sở dữ liệu, giúp bạn dễ dàng thiết lập và quản lý dữ liệu khởi đầu cho ứng dụng của mình.
Lệnh Django Loaddata là gì?
Lệnh loaddata
của Django cho phép bạn tải dữ liệu từ một file vào cơ sở dữ liệu. Thông thường, bạn sử dụng lệnh dumpdata
để xuất dữ liệu từ cơ sở dữ liệu và sử dụng lệnh loaddata
để nhập dữ liệu từ file vào cùng một cơ sở dữ liệu hoặc một cơ sở dữ liệu khác.
Cú pháp của lệnh loaddata
python manage.py loaddata tên_fixture
Một fixture là một tập hợp các file dữ liệu mà Django sẽ sử dụng để nhập vào cơ sở dữ liệu.
Theo mặc định, Django sẽ tìm kiếm các fixture trong thư mục fixtures
dưới mỗi ứng dụng và nhập dữ liệu từ chúng.
Bài viết này được đăng tại [free tuts .net]
Ví dụ, cấu trúc thư mục fixtures
và file hr.json
trong ứng dụng hr
của dự án như sau:
├── admin.py ├── apps.py ├── fixtures | └── hr.json ...
Đoạn trích sau đây từ file hr.json
:
[ { "model": "hr.contact", "pk": 1, "fields": { "phone": "40812345678", "address": "101 N 1st Street, San Jose, CA" } }, { "model": "hr.contact", "pk": 2, "fields": { "phone": "4081111111", "address": "202 N 1st Street, San Jose, CA" } } ]
Để tải hr.json
vào cơ sở dữ liệu, bạn sử dụng lệnh loaddata
sau:
python manage.py loaddata hr.json
Cài đặt thư mục Fixture trong Django
Theo mặc định, Django tìm các file dữ liệu trong thư mục fixtures
bên trong mỗi ứng dụng. Để chỉ định các thư mục bổ sung chứa các file fixture, bạn có thể thiết lập chúng trong danh sách FIXTURE_DIRS
trong file settings.py
:
FIXTURE_DIRS = ['đường/dẫn/tới/fixtures/dir', 'đường/dẫn/tới/fixtures/dir2']
Tải dữ liệu mẫu HR sử dụng Lệnh Django Loaddata
Mình sẽ sử dụng lệnh loaddata
để tải dữ liệu từ các fixture cho ứng dụng HR của dự án Django.
Đầu tiên, tải xuống mã nguồn dự án và giải nén nó vào một thư mục.
Thư mục hr/fixtures
có file data.json
chứa dữ liệu mẫu HR.
Thứ hai, chạy lệnh loaddata
để tải dữ liệu từ file data.json
:
python manage.py loaddata data.json
Nó sẽ xuất ra kết quả như sau:
Installed 471 object(s) from 1 fixture(s)
Kết bài
Tóm lại, lệnh loaddata
của Django là một công cụ hữu ích giúp bạn dễ dàng nhập dữ liệu từ các file fixture vào cơ sở dữ liệu của mình. Bằng cách sử dụng lệnh này, bạn có thể thiết lập dữ liệu khởi đầu một cách nhanh chóng và hiệu quả, giúp tiết kiệm thời gian và công sức trong quá trình phát triển và triển khai ứng dụng. Việc hiểu và sử dụng thành thạo lệnh loaddata
sẽ giúp bạn quản lý dữ liệu dễ dàng hơn, đồng thời cải thiện quy trình phát triển của dự án Django của bạn.