用django 开发一个设备管理系统
时间: 2023-12-15 18:06:00 浏览: 25
好的,下面是一个简单的设备管理系统的开发步骤:
1. 创建Django项目和应用
首先,使用Django的命令行工具创建一个新的Django项目和一个设备管理应用。
```
$ django-admin startproject device_management
$ cd device_management
$ python manage.py startapp devices
```
2. 定义设备模型
在devices应用中,创建一个设备模型,并设置设备的属性,例如设备名称、型号、序列号等等。
```python
# devices/models.py
from django.db import models
class Device(models.Model):
name = models.CharField(max_length=100)
model = models.CharField(max_length=100)
serial_number = models.CharField(max_length=100)
description = models.TextField(blank=True)
date_added = models.DateTimeField(auto_now_add=True)
```
3. 创建设备管理视图
在devices应用中,创建一个视图来管理设备。视图将定义设备的列表、详情、创建、更新和删除操作。
```python
# devices/views.py
from django.shortcuts import render, get_object_or_404
from django.http import HttpResponseRedirect
from django.urls import reverse
from .models import Device
def device_list(request):
devices = Device.objects.all()
return render(request, 'devices/device_list.html', {'devices': devices})
def device_detail(request, pk):
device = get_object_or_404(Device, pk=pk)
return render(request, 'devices/device_detail.html', {'device': device})
def device_create(request):
if request.method == 'POST':
name = request.POST['name']
model = request.POST['model']
serial_number = request.POST['serial_number']
description = request.POST['description']
device = Device(name=name, model=model, serial_number=serial_number, description=description)
device.save()
return HttpResponseRedirect(reverse('device_detail', args=[device.pk]))
else:
return render(request, 'devices/device_form.html')
def device_update(request, pk):
device = get_object_or_404(Device, pk=pk)
if request.method == 'POST':
device.name = request.POST['name']
device.model = request.POST['model']
device.serial_number = request.POST['serial_number']
device.description = request.POST['description']
device.save()
return HttpResponseRedirect(reverse('device_detail', args=[device.pk]))
else:
return render(request, 'devices/device_form.html', {'device': device})
def device_delete(request, pk):
device = get_object_or_404(Device, pk=pk)
device.delete()
return HttpResponseRedirect(reverse('device_list'))
```
4. 创建设备管理模板
在templates目录下创建设备管理的模板文件,分别是设备列表、设备详情、设备表单。这些模板文件将用于展示设备管理的相关信息。
```html
<!-- templates/devices/device_list.html -->
{% extends 'base.html' %}
{% block content %}
<h1>设备列表</h1>
<ul>
{% for device in devices %}
<li><a href="{% url 'device_detail' device.pk %}">{{ device.name }}</a></li>
{% empty %}
<li>没有设备</li>
{% endfor %}
</ul>
<a href="{% url 'device_create' %}">添加设备</a>
{% endblock %}
```
```html
<!-- templates/devices/device_detail.html -->
{% extends 'base.html' %}
{% block content %}
<h1>{{ device.name }}</h1>
<p><strong>型号:</strong> {{ device.model }}</p>
<p><strong>序列号:</strong> {{ device.serial_number }}</p>
<p><strong>描述:</strong> {{ device.description }}</p>
<p><strong>添加时间:</strong> {{ device.date_added }}</p>
<a href="{% url 'device_update' device.pk %}">编辑设备</a>
<a href="{% url 'device_delete' device.pk %}">删除设备</a>
{% endblock %}
```
```html
<!-- templates/devices/device_form.html -->
{% extends 'base.html' %}
{% block content %}
<h1>设备表单</h1>
<form method="post">
{% csrf_token %}
<div>
<label for="name">设备名称:</label>
<input type="text" name="name" value="{{ device.name|default:'' }}" required>
</div>
<div>
<label for="model">设备型号:</label>
<input type="text" name="model" value="{{ device.model|default:'' }}" required>
</div>
<div>
<label for="serial_number">设备序列号:</label>
<input type="text" name="serial_number" value="{{ device.serial_number|default:'' }}" required>
</div>
<div>
<label for="description">设备描述:</label>
<textarea name="description">{{ device.description|default:'' }}</textarea>
</div>
<button type="submit">保存</button>
</form>
{% endblock %}
```
5. 配置URL路由
在urls.py文件中,配置设备管理应用的URL路由,使其能够正确地映射到设备管理视图。
```python
# device_management/urls.py
from django.urls import path, include
urlpatterns = [
path('devices/', include('devices.urls')),
]
```
```python
# devices/urls.py
from django.urls import path
from . import views
urlpatterns = [
path('', views.device_list, name='device_list'),
path('<int:pk>/', views.device_detail, name='device_detail'),
path('create/', views.device_create, name='device_create'),
path('<int:pk>/update/', views.device_update, name='device_update'),
path('<int:pk>/delete/', views.device_delete, name='device_delete'),
]
```
6. 运行Django应用
最后,使用Django的开发服务器来启动应用并访问设备管理页面。
```
$ python manage.py runserver
```
在浏览器中访问 http://127.0.0.1:8000/devices/ 就可以看到设备列表了。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![.zip](https://img-home.csdnimg.cn/images/20210720083646.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)