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页面跳转问题及注意事项

    Django 页面跳转问题及注意事项 在 Django 框架中,实现页面跳转是常见的需求,如果处理不当,就会出现一些问题,本篇攻略将详细讲解 Django 页面跳转问题及注意事项。 1. 页面跳转方式 在 Django 中,实现页面跳转主要有以下两种方式: 1.1 HttpResponseRedirect HttpRedirect 是基于 HTTP 协议的一…

    Django 2023年5月16日
    00
  • 搭建高性能的 Django 服务器栈

    http://logic0.blog.163.com/blog/static/18892814620136258532112/ 搭建高性能的 Django 服务器栈   2013-07-25 23:00:22|  分类:Django学习 网站  |举报|订阅 对不起各位,我有点稍微标题党了。 本文针对裸机 Linux 搭建 Django 的服务器栈,可直接应…

    Django 2023年4月12日
    00
  • django模型层(model)进行建表、查询与删除的基础教程

    下面是“django模型层(model)进行建表、查询与删除的基础教程”的攻略: 什么是Django模型层 Django模型层,又称为ORM(Object Relational Mapping,对象关系映射),是Django的核心组件之一。它可以让我们不需要编写SQL语句就能与数据库进行交互。在模型层中,我们可以定义数据表、字段、数据类型、索引等信息,这些信…

    Django 2023年5月16日
    00
  • windows中使用django时报错:A server error occurred. Please contact the administrator.

    这是因为在视图函数中使用了get函数,获取了不存在的数据例如:数据库中不存在一条name为hello1的数据,使用如下语句访问message = Message.objects.get(name=’hello1′)就会报错 message = Message.objects.get(name=’boddy1′)解决方法: 见下图:    点击上图框中的链接后…

    Django 2023年4月12日
    00
  • Django 创建超级用户

    Django自带的后台管理是Django明显特色之一,可以让我们快速便捷管理数据。后台管理可以在各个app的admin.py文件中进行控制     #创建超级用户 python manage.py createsuperuser   注意密码需要8位,数字和字母组合   存储在auth_user表中   一、       基本设置   1、应用注册 若要把a…

    Django 2023年4月12日
    00
  • Django2.* + Mysql5.7开发环境整合教程图解

    下面我会详细讲解 “Django2.* + Mysql5.7开发环境整合教程图解”的完整攻略,此过程包含以下两个示例: 示例1:安装Mysql 为了实现Django2.*与Mysql5.7的整合开发,首先需要在本地计算机上安装Mysql数据库。可以按照以下步骤进行操作: 卸载旧版本的Mysql(如已经安装的老版本Mysql) sudo apt-get rem…

    Django 2023年5月16日
    00
  • Django添加数据、查询数据(转载)

    2018年05月18日 00:00:00 瞿凯Kai 阅读数 766   添加数据 创建学生模型并添加学生数据 1.前文中已提及模型建立、数据库连接及文件迁移,此处省略 2.学生数据添加方法(写在views中) def add(requst): if request.method == ‘GET’: return render(request, ‘index…

    Django 2023年4月12日
    00
  • 详解django实现自定义manage命令的扩展

    下面我将详细讲解“详解django实现自定义manage命令的扩展”的完整攻略,过程中包含两条示例说明。 什么是manage.py命令 在Django中,我们一般使用manage.py命令行工具来进行项目相关操作,例如启动服务器、创建数据库、添加管理员账户等等。 为什么需要自定义manage.py命令 虽然Django自带的manage.py命令已经非常丰富…

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