当前位置: 首页 > 新闻资讯  > 校友管理系统

用Python和Django打造一个校友管理平台

本文通过实际代码讲解如何用Python和Django框架开发一个适用于职校的校友管理平台,适合初学者学习。

嘿,大家好!今天咱们来聊一个挺有意思的项目——用Python和Django做一个“校友管理平台”。这个平台主要是给职校(职业学校)用的,用来管理毕业生的信息、联系方式、工作情况等等。听起来是不是挺有技术含量的?别担心,我来一步步带你们走一遍。

首先,咱们得明确一下需求。职校的校友管理系统需要具备哪些功能呢?比如说,添加校友信息、查看校友列表、搜索校友、更新信息、删除信息,还有可能需要导出数据之类的。对吧?这些都是基础功能,但也是关键点。

接下来,咱们得选个合适的框架。这里我推荐用Django,因为它是一个非常成熟的Python框架,而且自带了很多功能,比如数据库操作、用户认证、表单处理等,特别适合快速开发。如果你是刚开始学Python或者对Web开发不太熟悉,Django真的能帮你省不少事。

好了,现在咱们开始搭环境。首先,你得安装Python。如果你已经装好了,那太好了。接下来就是安装Django。你可以用pip来安装:

pip install django

安装完之后,你可以用以下命令创建一个新的Django项目:

django-admin startproject alumni_project

然后进入项目目录:

cd alumni_project

接下来,创建一个应用,比如叫“alumni”:

python manage.py startapp alumni

然后在`settings.py`里把新创建的app加进去:

INSTALLED_APPS = [
...
'alumni',
]

好了,接下来咱们要定义模型。模型就是数据库里的表结构。比如,校友信息可能包括姓名、性别、毕业年份、专业、联系方式、工作单位、职位等等。我们可以这样写:

# alumni/models.py
from django.db import models
class Alumni(models.Model):
name = models.CharField(max_length=100)
gender = models.CharField(max_length=10, choices=[('男', '男'), ('女', '女')])
graduation_year = models.IntegerField()
major = models.CharField(max_length=100)
contact_info = models.TextField()
job_title = models.CharField(max_length=100)
company = models.CharField(max_length=100)
def __str__(self):
return self.name

然后执行数据库迁移:

python manage.py makemigrations
python manage.py migrate

这样,我们的数据库就建好了。接下来,咱们要创建一个简单的页面来展示这些数据。Django的视图和模板机制可以帮我们实现这一点。

在`views.py`里,我们可以写一个视图函数来获取所有校友的数据,并传递给模板:

# alumni/views.py
from django.shortcuts import render
from .models import Alumni
def alumni_list(request):
alumni_list = Alumni.objects.all()
return render(request, 'alumni/alumni_list.html', {'alumni_list': alumni_list})

然后,在`templates/alumni/`目录下创建一个`alumni_list.html`文件,内容如下:




校友列表


校友列表
{% for alumni in alumni_list %}
{{ alumni.name }} - {{ alumni.major }}
{% endfor %}


接下来,我们需要配置URL路由。在`urls.py`里添加一条路径:

# alumni_project/urls.py
from django.contrib import admin
from django.urls import path
from alumni import views
urlpatterns = [
path('admin/', admin.site.urls),
path('alumni/', views.alumni_list),
]

校友管理

现在,运行服务器看看效果:

python manage.py runserver

打开浏览器,访问http://127.0.0.1:8000/alumni/,你应该能看到一个简单的校友列表页面。

但是这还不够,咱们还需要一个后台管理界面,方便管理员添加、编辑和删除校友信息。Django自带了一个强大的Admin后台,我们可以直接使用它。

首先,去`admin.py`里注册模型:

# alumni/admin.py
from django.contrib import admin
from .models import Alumni
admin.site.register(Alumni)

然后创建一个管理员账号:

python manage.py createsuperuser

输入用户名、邮箱和密码,然后登录到http://127.0.0.1:8000/admin/,就可以看到校友管理界面了。

不过,光有这些功能还不够。我们还可以考虑加入一些高级功能,比如搜索、分页、过滤、导出Excel等。比如,增加一个搜索功能,让用户可以根据姓名或专业查找校友。

修改一下视图函数:

# alumni/views.py
from django.shortcuts import render
from .models import Alumni
def alumni_list(request):
query = request.GET.get('q')
if query:
alumni_list = Alumni.objects.filter(name__icontains=query) | Alumni.objects.filter(major__icontains=query)
else:
alumni_list = Alumni.objects.all()
return render(request, 'alumni/alumni_list.html', {'alumni_list': alumni_list})

然后在模板中添加一个搜索框:

这样,用户就能根据关键词进行搜索了。

再来说说导出功能。有时候,学校可能需要将校友数据导出为Excel文件,方便后续处理。我们可以用`pandas`库来实现这个功能。

首先安装pandas:

pip install pandas

然后在视图中添加一个导出函数:

# alumni/views.py
import pandas as pd
from django.http import HttpResponse
from .models import Alumni
def export_alumni(request):
alumni_data = Alumni.objects.all().values(
'name', 'gender', 'graduation_year', 'major', 'contact_info', 'job_title', 'company'
)
df = pd.DataFrame(alumni_data)
response = HttpResponse(content_type='application/vnd.openxmlformats-officedocument.spreadsheetml.sheet')
response['Content-Disposition'] = 'attachment; filename=alumni.xlsx'
df.to_excel(response, index=False)
return response

然后在URL中添加一个路径:

# alumni_project/urls.py
from django.contrib import admin
from django.urls import path
from alumni import views
urlpatterns = [
path('admin/', admin.site.urls),
path('alumni/', views.alumni_list),
path('export-alumni/', views.export_alumni),
]

然后在模板中添加一个导出按钮:

导出Excel

这样,用户就可以下载一个包含所有校友信息的Excel文件了。

除了这些基本功能,我们还可以考虑加入用户登录系统,让不同的角色有不同的权限。比如,普通用户只能查看信息,而管理员可以编辑和删除。这可以通过Django的内置用户认证系统来实现。

最后,整个项目的结构大致如下:

alumni_project/
├── manage.py
├── alumni_project/
│   ├── settings.py
│   ├── urls.py
│   └── wsgi.py
└── alumni/
├── models.py
├── views.py
├── admin.py
├── urls.py
└── templates/
└── alumni/
└── alumni_list.html

通过这样的结构,我们可以更好地组织代码,也方便后期维护和扩展。

总结一下,我们用Django搭建了一个简单但功能完整的校友管理平台,包含了数据存储、前端展示、搜索、导出等功能。对于职校来说,这样的系统可以帮助他们更好地管理和联系校友,提升学校的影响力和校友资源的利用率。

如果你对这个项目感兴趣,可以尝试自己动手做一做,或者在这个基础上继续扩展更多功能,比如短信通知、邮件提醒、移动端适配等等。总之,这是一个非常有实用价值的项目,非常适合学习和实践。

好了,今天的分享就到这里。希望这篇文章对你有所帮助,如果你有任何问题,欢迎随时留言交流!

相关资讯

    暂无相关的数据...