用于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选择方法   连接到127.0.0.1的java间歇性故障,连接到IP(eth0)时没有故障   java如何优雅地杀死hadoop作业/intercept`hadoop作业杀死`   java如何通过引导类加载器以编程方式加载另一个类?   url Java:在查询参数之前使用片段构建URI   在BroadLeaf表blc_order_属性中保存OrderAttributes值时发生java错误   安卓将功能从xml转换为java   java如何将数据写入文件?   java JPA SQL结果映射   Java中整数对象比较运算符的引用安全性   Spring测试失败:java。lang.NoClassDefFoundError:org/springframework/cglib/transform/impl/memorysafuendecaredthrowableStrategy   rich:extendedDataTable中的java行选择和数据处理   java为什么我需要在volatile上对多个线程使用synchronized?   java尽管构建成功,但为什么会出现此错误?   数组$ArrayList不能转换为java。util。java中的ArrayList   java如何根据泛型类型调用方法?   java将JLabel添加到JPanel,将JPanel添加到JFrame   如果MapStruct中的源为null,则java将父目标设置为null   JavaJBossDrools从DRL插入事实   java不同的JRE安装(windows)