利用django创建学生管理系统
时间: 2025-01-02 11:22:44 浏览: 7
### 使用Django创建学生管理系统的教程
#### 项目初始化
为了启动一个新的 Django 学生管理系统,需先安装并配置好 Python 和 Django 环境。接着执行命令来创建新的 Django 项目:
```bash
django-admin startproject student_management_system
```
此操作会建立一个名为 `student_management_system` 的基础工程文件夹。
#### 应用程序创建
在 Django 中,应用程序代表特定功能模块,在本案例里即为学生信息管理部分。进入刚刚创建好的项目根目录下运行如下指令以生成应用组件:
```bash
cd student_management_system/
python manage.py startapp students
```
上述命令会在当前路径新增加一个叫作 "students" 的子包用于承载业务逻辑[^2]。
#### 配置 settings.py 文件
打开位于顶层目录下的 `settings.py` ,找到 INSTALLED_APPS 列表并将新加入的应用注册进去:
```python
INSTALLED_APPS = [
...
'students',
]
```
同时确认数据库设置正确无误以便后续能够顺利保存学籍资料等重要数据。
#### 定义模型 (Model)
编辑 `students/models.py` 来描述实体对象——这里指代的是 “Student”。例如:
```python
from django.db import models
class Student(models.Model):
name = models.CharField(max_length=100)
age = models.IntegerField()
grade = models.CharField(max_length=50)
def __str__(self):
return self.name
```
这段代码片段定义了一个简单的学员记录模板,其中包含了姓名(name),年龄(age) 及年级(grade)[^1]。
#### 创建管理员界面入口
为了让开发者可以更方便快捷地对学生档案进行增删改查操作,可以通过自定义 ModelAdmin 类来自动生成适合该场景使用的 admin 页面布局与交互特性。修改 `students/admin.py` 如下所示:
```python
from django.contrib import admin
from .models import Student
@admin.register(Student)
class StudentAdmin(admin.ModelAdmin):
list_display = ('name', 'age', 'grade')
```
这样就完成了对学生列表视图的基础定制化工作。
#### 数据库迁移
每当更改了任何有关于 Models 方面的内容之后都需要同步更新到实际存储介质上。因此要记得定期执行以下两条语句完成相应变更推送至目标 DBMS 并使之生效:
```bash
python manage.py makemigrations
python manage.py migrate
```
以上步骤确保所有模式上的改动都被妥善处理过了。
#### 构建 Views 层级
接下来就是着手编写具体的页面渲染函数或者 API 接口处理器。对于初学者来说最简单的方式莫过于利用内置通用视图 Generic View 实现 CRUD 功能集。比如可以在 `students/views.py` 添加类似下面这样的内容:
```python
from django.views.generic.edit import CreateView, UpdateView, DeleteView
from django.urls import reverse_lazy
from .models import Student
class StudentCreate(CreateView):
model = Student
fields = ['name', 'age', 'grade']
template_name_suffix = '_form'
class StudentUpdate(UpdateView):
model = Student
fields = ['name', 'age', 'grade']
template_name_suffix = '_update_form'
class StudentDelete(DeleteView):
model = Student
success_url = reverse_lazy('student_list')
def index(request):
latest_student_list = Student.objects.order_by('-id')[:5]
context = {'latest_student_list': latest_student_list}
return render(request, 'students/index.html', context)
```
此处展示了四种不同类型的 HTTP 请求对应的响应机制:GET/POST 对应添加新条目;PUT/PATCH 负责现有实例的信息修订;DELETE 显而易见是用来移除选定项的;最后还提供了一种获取最近录入五笔记录的方法供前端调用显示之用。
#### URL路由映射
最后一步便是将这些精心准备过的视图同外界访问请求关联起来形成完整的 Web Service 。前往 `students/urls.py` 编辑成如下形式即可满足基本需求:
```python
from django.urls import path
from .views import (
StudentCreate,
StudentUpdate,
StudentDelete,
index as student_index
)
urlpatterns = [
path('', student_index, name='index'),
path('add/', StudentCreate.as_view(), name='student_add'),
path('<int:pk>/edit/', StudentUpdate.as_view(), name='student_edit'),
path('<int:pk>/delete/', StudentDelete.as_view(), name='student_delete'),
]
```
至此整个简易版的学生信息系统就已经搭建完毕啦!
阅读全文