Django模型 GenericIPAddressField

GenericIPAddressField – Django模型

GenericIPAddressField是一个存储**IPv4或IPv6地址的字段,以字符串格式(例如192.0.2.30或2a02:42fe::4)。这个字段的默认窗体部件是一个TextInput。IPv6地址的规范化遵循RFC 4291#section-2.2 section 2.2,包括使用该节第3段中建议的IPv4格式,如::fff:192.0.2.0。例如,2001:0::0:01将被规范化为2001::1,而:fff:0a0a:0a0a则为:fff:10.10.10.10。所有字符都转换为小写。

语法:

field_name = models.GenericIPAddressField(**options)

GenericIPAddressField接受以下参数:

GenericIPAddressField.protocol

将有效输入限制在指定的协议上。可接受的值是 “两者”(默认)、”IPv4 “或 “IPv6″。匹配是不区分大小写的。

GenericIPAddressField.unpack_ipv4

解压IPv4映射的地址,如::fff:192.0.2.1。如果这个选项被启用,该地址将被解包为192.0.2.1。默认为禁用。只有在协议设置为’both’时才能使用。

Django模型的GenericIPAddressField说明

用一个例子说明GenericIPAddressField的情况。考虑一个名为geeksforgeeks的项目,有一个名为geeks的应用程序。

在geeks应用程序的models.py文件中输入以下代码。

from django.db import models
from django.db.models import Model
# Create your models here.
  
class GeeksModel(Model):
    geeks_field = models.GenericIPAddressField()

在INSTALLED_APPS中增加geek的应用程序。

# Application definition
  
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'geeks',
]

现在,当我们从终端运行makemigrations命令时。

Python manage.py makemigrations

在geeks目录下将创建一个名为migrations的新文件夹,其中有一个名为0001_initial.py的文件。

# Generated by Django 2.2.5 on 2019-09-25 06:00
  
from django.db import migrations, models
  
class Migration(migrations.Migration):
  
    initial = True
  
    dependencies = [
    ]
  
    operations = [
        migrations.CreateModel(
            name ='GeeksModel',
            fields =[
                ('id', 
                  models.AutoField(
                  auto_created = True,
                  primary_key = True,
                  serialize = False, 
                  verbose_name ='ID'
                )),
                ('geeks_field', 
                  models.GenericIPAddressField()),
            ],
        ),
    ]

Now run,

Python manage.py migrate

因此,当你在项目中运行迁移时,会创建一个geeks_field GenericIPAddressField。它是一个用来存储整数的字段。

如何使用 GenericIPAddressField

GenericIPAddressField用于存储Pv4或IPv6地址,为字符串格式,所以它基本上是一个带有IP地址验证的CharField。让我们试着在这个字段中保存一个IP地址 ” 0.0.0.0 ” 。

# importing the model
# from geeks app
from geeks.models import GeeksModel
  
# creating an instance of
# IP addresses
d = "0.0.0.0"
  
# creating a instance of 
# GeeksModel
geek_object = GeeksModel.objects.create(geeks_field = d)
geek_object.save()

现在让我们在管理服务器中检查一下。我们已经创建了一个GeeksModel的实例。

GenericIPAddressField - Django模型

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程