Django实现学生管理系统

下面我将为您提供关于“Django实现学生管理系统”的详细攻略:

1. 前置条件

在开始实现学生管理系统之前,需要确保您系统中已经安装了以下软件:

  • Python 3.x
  • Django 2.x
  • MySQL(或其他数据库)

如果您还没有安装以上软件,您可以在以下链接中找到安装教程:

2. 创建Django项目

在系统中安装好Python和Django之后,我们就可以开始创建一个新的Django项目。在命令行中输入以下命令:

$ django-admin startproject student_management_system

这个命令会在当前目录下创建一个名为“student_management_system”的Django项目。接下来,进入该项目的根目录:

$ cd student_management_system

3. 创建Django应用

在Django项目中,应用类似于子模块,用于组织和管理项目。我们需要在项目中创建一个名为“student”的应用,命令如下:

$ python manage.py startapp student

这个命令会在项目目录中创建一个名为“student”的Django应用。

4. 配置数据库

在Django中,我们可以使用不同的数据库来存储数据。在这里,我们将使用MySQL作为数据库。在项目根目录下找到“settings.py”文件,找到以下代码块:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': BASE_DIR / 'db.sqlite3',
    }
}

将其修改为以下内容,以使用MySQL数据库:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'your_database_name',
        'USER': 'your_username',
        'PASSWORD': 'your_password',
        'HOST': 'localhost',
        'PORT': '3306',
    }
}

请将“your_database_name”、“your_username”和“your_password”替换为您自己的数据库名称、用户名和密码。同时,确保MySQL服务器已经启动。

5. 设计数据模型

在学生管理系统中,我们需要存储以下数据:

  • 学生信息(学号、姓名、性别、年龄、电话、邮箱等)
  • 课程信息(课程编号、课程名称、学分、教师等)
  • 选课信息(学生、课程、成绩等)

我们需要设计和定义这些数据模型。在“student”应用的目录下找到“models.py”文件,并编辑它,编写以下代码:

from django.db import models

class Student(models.Model):
    student_id = models.CharField(max_length=10, primary_key=True)
    name = models.CharField(max_length=20)
    gender = models.CharField(max_length=2, choices=(('男', '男'), ('女', '女')))
    age = models.IntegerField()
    phone = models.CharField(max_length=20, blank=True)
    email = models.CharField(max_length=50, blank=True)

class Course(models.Model):
    course_id = models.CharField(max_length=10, primary_key=True)
    name = models.CharField(max_length=50)
    credits = models.IntegerField()
    teacher = models.CharField(max_length=20)

class Score(models.Model):
    student = models.ForeignKey(Student, on_delete=models.CASCADE)
    course = models.ForeignKey(Course, on_delete=models.CASCADE)
    score = models.IntegerField()

这个代码块定义了三个数据模型:学生(Student)、课程(Course)和选课(Score)。其中,“Student”和“Course”均定义了一个主键属性,并且使用了其它属性描述了学生和课程的基本信息。而“Score”模型为“Student”和“Course”模型提供了一个多对多的关系,同时包含了学生成绩。

6. 数据库迁移

在修改了数据模型之后,我们需要进行数据库迁移操作,以将新的模型同步到我们的MySQL数据库中。在命令行中输入以下命令:

$ python manage.py makemigrations
$ python manage.py migrate

这两个命令会自动检测并生成新的数据库模块,同时将其同步到MySQL数据库中。这两个命令一般只需要执行一次,除非您对数据模型进行了更改。

7. 创建管理后台

在Django中,我们可以使用“admin”应用轻松创建一个后台管理界面,以便更方便地对学生管理系统进行管理和维护。我们需要在“student”应用中创建一个名为“admin.py”的文件,并编辑它,编写以下代码:

from django.contrib import admin
from .models import Student, Course, Score

admin.site.register(Student)
admin.site.register(Course)
admin.site.register(Score)

这个代码块允许我们在后台管理界面中编辑和管理学生、课程和选课信息。我们还需要为后台管理界面创建一个超级用户(管理员)。在命令行中输入以下命令:

$ python manage.py createsuperuser

按照提示输入用户名、电子邮件和密码,即可创建一个拥有管理员权限的超级用户。

8. 创建网页视图和模板

接下来,我们需要定义网页视图和模板,以呈现学生管理系统的内容。我们需要在“student”应用的目录下找到“views.py”文件,并编辑它,编写以下代码:

from django.shortcuts import render
from .models import Student

def index(request):
    students = Student.objects.all()
    return render(request, 'student/index.html', {'students': students})

这个代码块定义了一个名为“index”的视图,其作用是查询所有的学生信息,并将其传递给名为“index.html”的模板。

在“student”应用的目录下创建一个名为“templates”的目录,然后在该目录下创建一个名为“student”的子目录。在这个子目录下,创建一个名为“index.html”的文件,编写以下代码:

{% extends 'base.html' %}

{% block content %}
  <h2>所有学生信息</h2>
  <table>
    <thead>
      <tr>
        <th>学号</th>
        <th>姓名</th>
        <th>性别</th>
        <th>年龄</th>
        <th>电话</th>
        <th>邮箱</th>
      </tr>
    </thead>
    <tbody>
      {% for student in students %}
        <tr>
          <td>{{ student.student_id }}</td>
          <td>{{ student.name }}</td>
          <td>{{ student.gender }}</td>
          <td>{{ student.age }}</td>
          <td>{{ student.phone }}</td>
          <td>{{ student.email }}</td>
        </tr>
      {% endfor %}
    </tbody>
  </table>
{% endblock %}

这个代码块定义了一个名为“index.html”的模板,其作用是在网页中呈现所有的学生信息。同时,它还继承了一个名为“base.html”的基础模板,以获得更加统一的网页风格。

9. 配置URL路由

在最后一步中,我们需要指定URL路由,以便用户可以访问学生管理系统的各种功能。我们需要在“student_management_system”项目的目录下找到“urls.py”文件,并编辑它,编写以下代码:

from django.contrib import admin
from django.urls import path
from student.views import index

urlpatterns = [
    path('', index),
    path('admin/', admin.site.urls),
]

这个代码块定义了两条路由规则:第一条将根目录("student_management_system/")映射到名为“index”的视图中;第二条将后台管理界面("student_management_system/admin/")映射到Django系统默认的后台管理界面中。

示例1:添加学生信息

在Django自带的后台管理界面中,我们可以轻松地添加、编辑和删除学生、课程和选课信息。我们可以在浏览器中访问“http://127.0.0.1:8000/admin/”,登录后即可进入后台管理界面。

在添加学生信息时,我们需要访问“/admin/student/student/add/”界面,输入学生的各项信息,然后单击“保存”按钮。

在添加课程信息时,我们需要访问“/admin/student/course/add/”界面,输入课程的各项信息,然后单击“保存”按钮。

在添加选课信息时,我们需要访问“/admin/student/score/add/”界面,选择一个学生和一门课程,输入成绩,然后单击“保存”按钮。

示例2:查询学生信息

在学生管理系统中,我们可以根据条件查询学生信息。例如,我们可以根据学号查询学生的详细信息。在“index.html”模板中,我们可以添加一个表单元素,以便用户输入学号。在“views.py”文件中,我们可以编写一个新的视图函数,以处理查询请求,并返回查询结果给模板。在“urls.py”文件中,我们可以添加一条路由规则,以映射新的视图函数。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Django实现学生管理系统 - Python技术站

(0)
上一篇 2023年5月16日
下一篇 2023年5月16日

相关文章

  • Django快速学习搭建blog项目

      新手学习Django,本文学习的文档是《Django Web开发指南》。好了我也是新手,没什么好说了,go!~ 首先先确定环境,我是在linux(Ubuntu14.04 gnome)下。 自带python2.7.6 我是用mysql数据库,没有的请下载 sudo apt-get install mysql-server-5.5 接下来准备下载Django…

    Django 2023年4月11日
    00
  • 在Django中使用MQTT的方法

    下面是在Django中使用MQTT的完整攻略: 1. 安装依赖 首先需要在Django项目中安装mqtt库,可以使用pip进行安装: pip install paho-mqtt 2. 创建MQTT客户端 在Django项目中创建一个mqtt_client.py文件,并编写如下代码: import paho.mqtt.client as mqtt class …

    Django 2023年5月15日
    00
  • Python笔记(六)- 模型及Django站点管理

      在这篇博文中,将介绍django与数据库方面的交互的知识。首先在网上下载Python For MySQL,然后进行安装。安装成功之后,在setting.py文件中进行装载,如下: 1 DATABASES = { 2 ‘default’: { 3 ‘ENGINE’: ‘django.db.backends.mysql’, 4 ‘NAME’: ‘databa…

    Django 2023年4月12日
    00
  • django HttpResponse的用法

    一、传json字典 def back_json(rquest): #JsonResponse父类是HttpResponse,原码里调用了json.dumps() from django.http import JsonResponse back_msg = {‘name’:name,’age’:123} return JsonResponse(back_ms…

    Django 2023年4月12日
    00
  • Django架设blog步骤

    最近在研究Python,起初是因为想做个爬虫,昨天看了点基础教程,台湾辅仁大学的视频,了解了python的语法规范及语言特性,主要有三: 1.动态脚本语言; 2.语法简洁,强制缩进; 3.应用广泛,web、系统管理、脚本、科学计算等等,第三方应用多;   下面开始正文,Django是Python时间中数一数二的web框架,由3个小伙创建,名字来源于一个吉他手…

    Django 2023年4月11日
    00
  • 简单了解Django模板的使用

    以下是详细讲解“简单了解Django模板的使用”的完整攻略。 一、什么是Django模板 Django模板是Django框架中的一个重要组件,它用于将数据生成html文档。模板将数据与html文档分开处理,使得前端和后端可以分别进行编写和维护。 二、Django模板使用方法 1.创建模板文件 在Django项目中,通常将所有模板放在一个模板文件夹下。创建模板…

    Django 2023年5月16日
    00
  • Vue与Django数据交互

    首先配置路由信息,理论上都会添加二级路由:所以会有请求转发 1 from django.conf.urls import url,include 2 3 url(r’^api/(?P<version>\w+)/’,include(“api.urls”)), 此时请求会转发给二级路由:api.urls 1 url(r’^course/$’,cour…

    Django 2023年4月13日
    00
  • django 之数据库模块

    前提ajango的 数据库主要是为了存取网站的一些内容,数据库的设置一般放在model.py 下   目录下   我们设置如下的数据库:具体的代码如下面所示: 1 # -*- coding: utf-8 -*- 2 import pdb 3 from django.db import models 4 from django.contrib.auth.mod…

    Django 2023年4月9日
    00
合作推广
合作推广
分享本页
返回顶部