- vừa được xem lúc

Tích hợp đơn vị hành chính Việt Nam vào dự án Django

0 0 36

Người đăng: Tinh Pham Ba

Theo Viblo Asia

Lời nói đầu

Chào mọi người, mình xin tự giới thiệu mình là 1 dev về Django. Đây là lần đầu tiên mình viết blog nên nếu có gì sai sót mong mọi người góp ý để mình cải thiện và bổ sung nhé 😄.
Sau khi tham gia một số dự án, mình nhận thấy rằng chưa có thư viện nào hỗ trợ tích hợp các đơn vị hành chính của Việt Nam. Nên mình có tìm hiểu, tham khảo và cho ra lò được 1 thư viện tên là django_vi_address.
Thư viện này sẽ hỗ trợ cho các dự án về Django đang cần tích hợp đơn vị hành chính Việt Nam một cách nhanh chóng. Nó cũng cung cấp sẵn một số endpoint để mọi người cài đặt xong là xài luôn 😄.
Đây là link github em nó: https://github.com/tinhpb9x/django-vi-address
Giờ thì mình cùng tích hợp nó xem như nào nhé. Lét gô !

1. Khởi tạo dự án Django

  • Đầu tiên, ta sẽ tạo 1 thư mục mới có tên là my_django_site để chứa dự án mà ta sẽ tích hợp:
$ mkdir my_django_site && cd my_django_site
  • Tạo và kích hoạt môi trường ảo cho dự án:
$ virtualenv venv
$ source venv/bin/activate
  • Ta sẽ tạo dự án có tên là my_site:
(venv) $ django-admin startproject my_site
  • Truy cập vào dự án và tiến hành chạy thử:
(venv) $ cd my_site
(venv) $ python manage.py runserver

2. Tích hợp thư viện django_vi_address vào dự án

  • Cài đặt thư viện bằng pip:
(venv) $ pip install django-vi-address
  • Cập nhật INSTALLED_APPS:

Thư viện sẽ sử dụng Django Rest Framework để tạo endpoints nên cần cấu hình thêm rest_framework. Còn vi_address là app của thư viện.

INSTALLED_APPS = [ ... 'rest_framework', 'vi_address', ...
]
  • Cấu hình để sử dụng endpoints:
# my_site/urls.py
from django.urls import path, include # new urlpatterns = [ ... path('api/address/', include('vi_address.urls')), # new
] 
  • Migrate để tạo models:
(venv) $ python manage.py migrate
  • Thêm dữ liệu các tỉnh/thành phố:
(venv) $ python manage.py insert_data --datatype=city
  • Thêm dữ liệu các quận/huyện:
(venv) $ python manage.py insert_data --datatype=district
  • Thêm dữ liệu các phường/xã:
(venv) $ python manage.py insert_data --datatype=ward

3. Giới thiệu các endpoints có sẵn

  • GET /api/address/cities: Lấy ra danh sách tất cả tỉnh/thành phố của Việt Nam
  • GET /api/address/city/{city_id}: Lấy ra danh sách tất cả quận/huyện của 1 tỉnh cụ thể
  • GET /api/address/district/{district_id}: Lấy ra tất cả phường/xã của của 1 huyện cụ thể

4. Kết

Qua bài này, mình muốn giới thiệu tới mọi người 1 cách tích hợp đơn vị hành chính của Việt Nam vào 1 dự án Django nhanh, gọn và lẹ nhất. Chắc chắn vẫn còn nhiều điều cần cải thiện nên mong nhận được những lời góp ý từ mọi người và hẹn gặp lại ở những series tiếp theo !

5. Nguồn dữ liệu

  • Dữ liệu đơn vị hành chính mình sử dụng là định dạng json, được lấy từ repo: https://github.com/madnh/hanhchinhvn của anh Đỗ Danh Mạnh và anh Anh Nguyen. Trân trọng cảm ơn các anh !

Bình luận

Bài viết tương tự

- vừa được xem lúc

Creating a Custom User Model in Django

Làm thế nào để thay thế username với email trong Django authentication. Cần chú ý rằng các làm này sẽ làm thay đổi rất nhiều đến schema của database vậy nên khuyến khích khi thực hiện một dự án mới.

0 0 23

- vừa được xem lúc

Câu chuyện kiểm soát truy cập trong Django.

Nếu bạn đang xây dựng một ứng dụng với Django, có thể bạn sẽ muốn kiểm soát quyền truy cập ứng với từng loại user. Những tính năng này sẽ phổ biến trên các trang web có quy mô lớn hơn một chút.

0 0 68

- vừa được xem lúc

Django: Handling CSV Data

Khi làm việc với các dự án Python hay Django thì phần xử lý CSV hầu như là không thể thiếu. Qua bài viết này, các bạn hãy cùng mình hiểu rõ hơn về CSV cũng như xử lý chúng ra sao nhé.

0 0 29

- vừa được xem lúc

Python Django - Xây dựng ứng dụng e-commerce (Part 1)

Giới thiệu Django - Khởi tạo project. Sơ qua về Django. . Django là một Framework lập trình web bậc cao được viết bằng ngôn ngữ lập trình Python.

0 0 857

- vừa được xem lúc

Deploy thủ công ứng dụng Django

Đối với một developer mà nói, mục đích cuối cùng của chúng ta khi phát triển một sản phẩm là có thể đưa sản phẩm ấy đến được với người dùng, và deploy là bước cuối cùng mà chúng ta cần thực hiện. Tron

0 0 261

- vừa được xem lúc

Dễ dàng có ngay ứng dụng e-commerce với Django (Part 2)

Xin chào tất cả mọi người. Tiếp nối bài viết trước về việc dùng Python Django để xây dựng 1 ứng dụng thương mại điện tử, sau đây mình xin phép được làm tiếp phần 2 để bổ sung thêm các chức năng, giúp

0 0 696