用于django模型的具有bigint存储的ipy.ip实例

django-ipyfield的Python项目详细描述


ipyfielddjango 允许将IP地址存储为“假装”PositiveBigInt (当前为varchar(39),直到我找到如何获得无符号64位 所有支持的数据库中的整数列) 在数据库端使用IPy来处理 在python端转换为IPy.IP实例(或None)。

Wut?

以它的方式,它为我们提供了一种一致存储ipv4ipv6的方法 不用把它们扔进长长的沙场。而且,它给了我们一个简单的方法 在数据传入时进行验证,同时允许我们访问其他元数据 信息(基本上 IPy太棒了)。

安装

使用pip

pip install django-ipyfield

或者用easy_install

easy_install django-ipyfield

用法

在您的模型中,执行以下操作:

from django.db import models
from ipyfield.models import IPyField

class MyModel(models.Model):

    # the regular params should work well enough here
    ipaddr = IPyField()
    # ... and so on

从这里开始,对obj.ipaddr的任何赋值都可以被视为构造函数 新IPy.IP实例的参数。任何IP()可以用来创建新的 可以使用对象。

在查询时,我额外添加了一块语法糖。为了 __in(range)查找,可以传递cidr符号地址范围,用于 示例:

MyModel.objects.filter(ipaddr__in='10.0.0.0/24')

目前您需要使用这种形式的表示法来支持这种类型的 查询。现在,如果需要使用prefix-netmask样式表示法,请传递它 使用生成的实例作为筛选参数。

待办事项

  • 找出如何在所有数据库中构建大小适当的整数字段。

更改日志

0.1.6
添加了对gtgteltlte查找的支持。
0.1.5
增加了南部支持。
0.1.4
与非IP实例相比,ipy.ip实例引发异常。这个 当您进入modelform验证时会成为一个问题(在 仅使用orm)处理空/空值。通过子类化修复 (包装)ipy.ip.
0.1.3
基本字段功能就位。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java JPA。Eclipselink没有为mySQL提供密码,但它应该提供   我的Servlet和@FormDataParam存在java问题   java将什么作为上下文参数传递到文件I/O方法中?   如果两个值相同,java无法找到其中一个单选按钮   java在变量和方法名中使用下划线   JavaSpringMVC单线程安全?   klazz类的java Arraylist(反射Api)   java如何在数字字符串中查找最频繁的数字?   JavaAPI设计:使数据更易于阅读与强制更多API调用   JavaHadoopMapReduceforGoogleWebGraph   java无法启动gauge API:Runner意外退出   java如何在bluemix上使用ibm工作负载调度器?   拉取一年中某一周特定日期的所有日期   java为什么是我的角节点。js应用程序将图像上传到S3� 邮递员正确上传时的符号?   在不使用任何第三方jar的情况下将文件从本地传输到linux系统(java代码)   java将现有文件夹复制到Eclipse工作区中新创建的项目中   Java中的regex RegExp帮助   当使用“系统”外观时,Java组合框setSelectedItem会出现故障   JavaASM:在类的方法中获取局部变量名和值