用DJango实现一个使用数据库对员工信息进行增删改查的代码
时间: 2024-02-29 07:51:27 浏览: 82
实现对员工信息的增删改查实例(全注解)
4星 · 用户满意度95%
以下是使用 Django 实现对员工信息进行增删改查的示例代码:
1. 定义模型
首先,在 `models.py` 文件中定义员工信息的模型,例如:
```python
from django.db import models
class Employee(models.Model):
name = models.CharField(max_length=100)
age = models.IntegerField()
position = models.CharField(max_length=100)
department = models.CharField(max_length=100)
```
这个模型定义了员工的姓名、年龄、职位和部门四个属性。
2. 创建视图
接下来,在 `views.py` 文件中创建视图,实现对员工信息的增删改查操作。例如:
```python
from django.shortcuts import render, redirect
from .models import Employee
def employee_list(request):
employees = Employee.objects.all()
return render(request, 'employee_list.html', {'employees': employees})
def employee_detail(request, id):
employee = Employee.objects.get(id=id)
return render(request, 'employee_detail.html', {'employee': employee})
def employee_create(request):
if request.method == 'POST':
name = request.POST.get('name')
age = request.POST.get('age')
position = request.POST.get('position')
department = request.POST.get('department')
employee = Employee(name=name, age=age, position=position, department=department)
employee.save()
return redirect('employee_list')
else:
return render(request, 'employee_form.html')
def employee_update(request, id):
employee = Employee.objects.get(id=id)
if request.method == 'POST':
employee.name = request.POST.get('name')
employee.age = request.POST.get('age')
employee.position = request.POST.get('position')
employee.department = request.POST.get('department')
employee.save()
return redirect('employee_list')
else:
return render(request, 'employee_form.html', {'employee': employee})
def employee_delete(request, id):
employee = Employee.objects.get(id=id)
employee.delete()
return redirect('employee_list')
```
这里定义了五个视图:
- `employee_list`: 显示所有员工信息的列表页面。
- `employee_detail`: 显示单个员工信息的详情页面。
- `employee_create`: 创建新员工信息的页面。
- `employee_update`: 修改已有员工信息的页面。
- `employee_delete`: 删除已有员工信息的操作。
3. 编写模板
最后,在 `templates` 目录下编写模板文件,实现页面的呈现。例如:
- `employee_list.html`
```html
{% for employee in employees %}
<h2><a href="{% url 'employee_detail' employee.id %}">{{ employee.name }}</a></h2>
<p>{{ employee.position }}, {{ employee.department }}</p>
{% endfor %}
<a href="{% url 'employee_create' %}">新建员工</a>
```
- `employee_detail.html`
```html
<h2>{{ employee.name }}</h2>
<p>年龄:{{ employee.age }}</p>
<p>职位:{{ employee.position }}</p>
<p>部门:{{ employee.department }}</p>
<a href="{% url 'employee_update' employee.id %}">修改</a>
<a href="{% url 'employee_delete' employee.id %}">删除</a>
```
- `employee_form.html`
```html
<form method="post">
{% csrf_token %}
<label>姓名:</label><input type="text" name="name" value="{{ employee.name|default:'' }}"><br>
<label>年龄:</label><input type="text" name="age" value="{{ employee.age|default:'' }}"><br>
<label>职位:</label><input type="text" name="position" value="{{ employee.position|default:'' }}"><br>
<label>部门:</label><input type="text" name="department" value="{{ employee.department|default:'' }}"><br>
<input type="submit" value="保存">
</form>
```
这些模板文件分别对应员工信息列表、员工信息详情、员工信息创建和修改页面。其中,`{% url %}` 模板标签用于生成 URL,`{% csrf_token %}` 模板标签用于生成 CSRF 令牌,保证表单提交的安全性。
最后,记得在 `urls.py` 文件中定义 URL 路由,将视图和模板连接起来。
阅读全文