大家好,今天我来给大家分享一下怎么用Python和Django做一个简单的学生宿舍管理系统。这个系统虽然功能不多,但能帮助我们理解Web开发的基本流程,也适合做演示用。
首先,我们要明确这个系统的功能需求。它应该能管理宿舍信息、学生信息,以及分配宿舍。比如,我们可以有以下几个模块:
宿舍信息管理(宿舍号、床位数、是否已满等)
学生信息管理(姓名、学号、性别、专业等)
宿舍分配功能(将学生分配到某个宿舍)
接下来,我们需要选择技术栈。这里我选择的是Python的Django框架,因为它上手简单,而且内置了很多功能,比如数据库操作、用户认证、模板引擎等等。非常适合做演示项目。
第一步:安装Django
在开始之前,你需要确保你的电脑上已经安装了Python。然后打开终端或者命令行工具,运行下面的命令来安装Django:
pip install django
安装完成后,你可以用下面的命令创建一个新的Django项目:
django-admin startproject dorm_management
这会生成一个名为dorm_management的文件夹,里面是Django项目的结构。
第二步:创建应用
Django项目中可以包含多个应用,每个应用负责不同的功能模块。我们现在要创建一个叫“dorm”的应用,用来处理宿舍相关的逻辑:
cd dorm_management
python manage.py startapp dorm
接着,需要把新创建的dorm应用添加到settings.py中的INSTALLED_APPS列表里:
INSTALLED_APPS = [
...
'dorm',
]
第三步:定义模型
在Django中,数据存储是通过模型(Model)来实现的。我们先在dorm/models.py中定义两个模型:Student和Dormitory。
from django.db import models
class Dormitory(models.Model):
number = models.CharField(max_length=10)
capacity = models.IntegerField()
is_full = models.BooleanField(default=False)
def __str__(self):
return self.number
class Student(models.Model):
name = models.CharField(max_length=100)
student_id = models.CharField(max_length=20, unique=True)
gender = models.CharField(max_length=10)
major = models.CharField(max_length=50)
dormitory = models.ForeignKey(Dormitory, on_delete=models.SET_NULL, null=True, blank=True)
def __str__(self):
return self.name
这段代码定义了两个模型:Dormitory表示宿舍,Student表示学生。Student模型有一个外键关联到Dormitory,表示学生被分配到了哪个宿舍。
第四步:迁移数据库
现在模型已经写好了,接下来需要让Django根据这些模型生成数据库表。运行以下命令:
python manage.py makemigrations
python manage.py migrate
这样,Django就会自动创建数据库表,保存我们的宿舍和学生信息。
第五步:创建管理员账号
为了方便管理,我们可以创建一个管理员账号,用来登录Django的后台管理界面:
python manage.py createsuperuser
按照提示输入用户名、邮箱和密码,完成创建。
第六步:配置后台管理
在dorm/admin.py中注册模型,让它出现在后台管理界面:
from django.contrib import admin
from .models import Dormitory, Student
admin.site.register(Dormitory)
admin.site.register(Student)
第七步:启动服务器并访问
现在,我们可以启动Django开发服务器,看看效果:
python manage.py runserver
然后在浏览器中访问 http://127.0.0.1:8000/admin/,用刚才创建的管理员账号登录,就可以看到宿舍和学生的管理界面了。
第八步:添加视图和模板
除了后台管理,我们还可以为普通用户创建一些页面,比如显示所有宿舍信息,或者让学生申请宿舍。
在dorm/views.py中添加一个视图函数:
from django.shortcuts import render
from .models import Dormitory
def dorm_list(request):
dorms = Dormitory.objects.all()
return render(request, 'dorm/list.html', {'dorms': dorms})
然后在dorm/templates/dorm目录下创建一个list.html文件,内容如下:
<h1>宿舍列表</h1>
<ul>
{% for dorm in dorms %}
<li>{{ dorm.number }} - {{ dorm.capacity }}个床位</li>
{% endfor %}
</ul>
最后,在dorm/urls.py中配置URL路由:
from django.urls import path
from . import views
urlpatterns = [
path('dorms/', views.dorm_list, name='dorm_list'),
]
然后在dorm_management/urls.py中引入这个应用的URL:
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('dorm.urls')),
]
第九步:测试和演示
现在,我们可以访问 http://127.0.0.1:8000/dorms/ 来查看宿舍列表页面。如果一切正常,你就能看到之前在后台添加的宿舍信息了。
这就是一个简单的学生宿舍管理系统的演示版本。虽然功能有限,但它展示了Web开发的基本流程:定义模型、设置数据库、创建视图、设计模板、配置URL,以及部署运行。
总结
通过这个小项目,我们可以学到很多关于Web开发的知识,比如Django框架的使用、模型的设计、模板的渲染、URL路由的配置等等。对于初学者来说,这是一个很好的入门练习。
如果你对这个项目感兴趣,可以继续扩展它的功能,比如加入学生申请宿舍的功能、宿舍分配算法、搜索功能、权限控制等等。这些都是未来可以深入学习的方向。
希望这篇文章对你有帮助,也欢迎大家一起讨论和交流!

