django-ipyfield là một ứng dụng Django cung cấp một lĩnh vực mô hình cho Django, cho phép lưu trữ & nbsp; của một địa chỉ ip như một bigint về phía db bằng cách sử dụng IPY để xử lý chuyển đổi thành một thể hiện IPy.IP (hoặc Không) trên phía python.
wut?
Theo cách của nó, nó mang lại cho chúng ta một cách để lưu trữ cả ipv4 và ipv6 luôn mà không cần phải ném chúng charfields dài. Ngoài ra, nó cung cấp cho chúng tôi một cách dễ dàng để xác nhận dữ liệu khi nó đến, khi đem lại cho chúng ta truy cập thông tin meta bổ sung (về cơ bản tất cả mọi thứ mà làm cho IPY rất tuyệt vời).
Cài đặt
Thêm phần này vào dự án django của bạn bằng cách cài đặt với pip:
pips cài đặt django-ipyfield
hoặc với easy_install:
easy_install django-ipyfield
Cách sử dụng
Trong mô hình của bạn, làm một cái gì đó như sau:
từ các mô hình nhập khẩu django.db
từ ipyfield.models nhập IPyField
class MyModel (models.Model):
& Nbsp; # params thường xuyên phải làm việc cũng đủ ở đây
& Nbsp; ipaddr = IPyField ()
& Nbsp; # ... và vv
Từ đây, bất kỳ công việc để obj.ipaddr có thể được coi là một đối số nhà xây dựng cho một ví dụ IPy.IP mới. Bất cứ điều gì IP () có thể sử dụng để tạo ra một đối tượng mới có thể được sử dụng.
Khi thực hiện truy vấn, tôi đã thêm một mảnh thêm đường cú pháp. Đối __in (range) tra cứu, bạn có thể vượt qua một loạt địa chỉ CIDR ký hiệu, ví dụ:
MyModel.objects.filter (ipaddr__in = '10 .0.0.0 / 24 ')
Hiện nay bạn cần phải sử dụng hình thức ký hiệu này hỗ trợ cho các loại hình truy vấn. Để bây giờ, nếu bạn cần phải sử dụng một ký hiệu phong cách prefix-netmask, vượt qua nó để IPy.IP mình và sử dụng các ví dụ kết quả như tham số bộ lọc của bạn.
là gì mới trong phiên bản này:.
- Thêm hỗ trợ cho gt, GTE, lt, và tra cứu lte
là gì mới trong phiên bản 0.1.4:
- IPy.IP dụ nêu lên trường hợp ngoại lệ khi so sánh với một non-IP dụ. Điều này trở thành một vấn đề khi bạn nhận được vào xác nhận ModelForm (không đi lên khi chỉ sử dụng ORM) liên quan đến các giá trị rỗng / null.
Yêu cầu :
- Python
- Django
Bình luận không