django实现一个IT设备和IP地址管理的网站

下面是实现 IT 设备和 IP 地址管理的 Django 应用,包括 model、views、urls、admin、HTML 模板文件:

# it_management/models.py
from django.db import models

class Device(models.Model):
    name = models.CharField(max_length=100)
    manufacturer = models.CharField(max_length=100)
    purchase_date = models.DateField()
    warranty_period = models.PositiveIntegerField()
    ip_address = models.ForeignKey('IPAddress', on_delete=models.SET_NULL, null=True, blank=True)

    def __str__(self):
        return self.name

class IPAddress(models.Model):
    address = models.GenericIPAddressField()
    is_allocated = models.BooleanField(default=False)
    device = models.OneToOneField(Device, on_delete=models.SET_NULL, null=True, blank=True)

    def __str__(self):
        return self.address
# it_management/views.py
from django.shortcuts import render, get_object_or_404
from .models import Device, IPAddress

def device_list(request):
    devices = Device.objects.all()
    return render(request, 'it_management/device_list.html', {'devices': devices})

def device_detail(request, pk):
    device = get_object_or_404(Device, pk=pk)
    return render(request, 'it_management/device_detail.html', {'device': device})

def ip_list(request):
    ips = IPAddress.objects.all()
    return render(request, 'it_management/ip_list.html', {'ips': ips})

def ip_detail(request, pk):
    ip = get_object_or_404(IPAddress, pk=pk)
    return render(request, 'it_management/ip_detail.html', {'ip': ip})
# it_management/urls.py
from django.urls import path
from . import views

urlpatterns = [
    path('devices/', views.device_list, name='device_list'),
    path('devices/<int:pk>/', views.device_detail, name='device_detail'),
    path('ips/', views.ip_list, name='ip_list'),
    path('ips/<int:pk>/', views.ip_detail, name='ip_detail'),
]

在 Django 的主配置文件中需要添加以下代码:

# mysite/urls.py
from django.contrib import admin
from django.urls import include, path

urlpatterns = [
    path('admin/', admin.site.urls),
   path('', include('it_management.urls')),
]
# it_management/admin.py
from django.contrib import admin
from .models import Device, IPAddress

admin.site.register(Device)
admin.site.register(IPAddress)

最后是 HTML 模板文件:

<!-- it_management/templates/it_management/device_list.html -->
{% extends 'base.html' %}

{% block content %}
  <h1>Device List</h1>
  <ul>
    {% for device in devices %}
      <li><a href="{% url 'device_detail' pk=device.pk %}">{{ device.name }}</a></li>
    {% endfor %}
  </ul>
{% endblock %}

<!-- it_management/templates/it_management/device_detail.html -->
{% extends 'base.html' %}

{% block content %}
  <h1>{{ device.name }}</h1>
  <p>Manufacturer: {{ device.manufacturer }}</p>
  <p>Purchase Date: {{ device.purchase_date }}</p>
  <p>Warranty Period: {{ device.warranty_period }}</p>
  {% if device.ip_address %}
    <p>IP Address: <a href="{% url 'ip_detail' pk=device.ip_address.pk %}">{{ device.ip_address.address }}</a></p>
  {% endif %}
{% endblock %}

<!-- it_management/templates/it_management/ip_list.html -->
{% extends 'base.html' %}

{% block content %}
  <h1>IP Address List</h1>
  <ul>
    {% for ip in ips %}
      <li><a href="{% url 'ip_detail' pk=ip.pk %}">{{ ip.address }}</a></li>
    {% endfor %}
  </ul>
{% endblock %}

<!-- it_management/templates/it_management/ip_detail.html -->
{% extends 'base.html' %}

{% block content %}
  <h1>{{ ip.address }}</h1>
  <p>Is Allocated: {{ ip.is_allocated }}</p>
  {% if ip.device %}
    <p>Device: <a href="{% url 'device_detail' pk=ip.device.pk %}">{{ ip.device.name }}</a></p>
  {% endif %}
{% endblock %}

这是一个完整的 Django 应用,可以管理 IT 设备和 IP 地址。这是一个比较简单的代码实现,实际开发中可能还需要根据自己的需求进行修改和扩展。本代码仅供参考,在实际使用中需要根据自己的情况进行修改。特别是对于数据安全,需要根据自己的实际情况进行考虑和处理。

posted @ 2023-02-10 10:29  Souno-io  阅读(133)  评论(0)    收藏  举报