python+django+sql学生信息管理后台开发

“Python+Django+SQL学生信息管理后台开发”是一项非常实用的项目,可以帮助学校、教育机构、学院等管理学生的个人信息和学习成绩。下面是完整攻略及示例说明:

1. 确定项目需求

在开始项目前,首先需要确定项目的需求,明确项目要解决的问题。例如,要开发一个学生信息管理后台,需要实现的功能包括:

  • 学生信息的录入、修改和删除
  • 学生信息的查询功能
  • 学生成绩的录入和查询功能
  • 班级、学院等基础信息的管理功能等

2. 搭建开发环境

接下来需要搭建Python、Django和MySQL等开发环境。安装好必要的软件后,创建一个Django项目,命名为StudentManage,进入到该项目的目录下。

3. 数据库设计

根据需求设计数据库模型。在MySQL中创建一个名为student_management的数据库,然后创建students、grades和classes三张数据表,分别表示学生信息、成绩和班级信息。具体的表结构如下:

students表结构

字段名 数据类型 说明
id 整数 学生学号,主键
name 字符串 学生姓名
gender 字符串 学生性别
age 整数 学生年龄
email 字符串 学生电子邮件地址
class_id 整数 学生所在的班级id,外键

grades表结构

字段名 数据类型 说明
id 整数 成绩id,主键
math 整数 数学成绩
chinese 整数 语文成绩
english 整数 英语成绩
student_id 整数 学生学号,外键

classes表结构

字段名 数据类型 说明
id 整数 班级id,主键
name 字符串 班级名称
major 字符串 所属专业

4. 编写代码

数据库配置

在StudentManage/StudentManage/settings.py中进行数据库的配置,修改数据库相关信息如下:

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

创建模型

在models.py文件中定义学生信息、成绩和班级三个模型类,代码如下:

from django.db import models

class Class(models.Model):    
    name = models.CharField(max_length=30)
    major = models.CharField(max_length=50)

class Student(models.Model):
    id = models.IntegerField(primary_key=True)
    name = models.CharField(max_length=30)
    gender = models.CharField(max_length=10)
    age = models.IntegerField()
    email = models.EmailField()
    class_id = models.ForeignKey(Class, on_delete=models.CASCADE)

class Grade(models.Model):
    id = models.AutoField(primary_key=True)
    math = models.IntegerField()
    chinese = models.IntegerField()
    english = models.IntegerField()
    student_id = models.ForeignKey(Student, on_delete=models.CASCADE)

创建视图

在views.py文件中创建添加、修改、查询等视图函数,具体代码如下指南和示例:

添加学生信息

from django.shortcuts import render
from django.http import HttpResponse
from .models import Student

def add_student(request):
    if request.method == 'POST':
        id = request.POST.get('id')
        name = request.POST.get('name')
        gender = request.POST.get('gender')
        age = request.POST.get('age')
        email = request.POST.get('email')
        class_id = request.POST.get('class_id')
        Student.objects.create(id=id, name=name, gender=gender, age=age, email=email, class_id=class_id)
        return HttpResponse('添加成功')
    return render(request, 'add_student.html')

修改学生信息

from django.shortcuts import render
from django.http import HttpResponse
from .models import Student

def update_student(request):
    if request.method == 'POST':
        id = request.POST.get('id')
        name = request.POST.get('name')
        gender = request.POST.get('gender')
        age = request.POST.get('age')
        email = request.POST.get('email')
        class_id = request.POST.get('class_id')
        Student.objects.filter(id=id).update(name=name, gender=gender, age=age, email=email, class_id=class_id)
        return HttpResponse('修改成功')
    return render(request, 'update_student.html')

查询学生信息

from django.shortcuts import render
from django.http import HttpResponse
from .models import Student

def search_student(request):
    students = []
    if request.method == 'POST':
        id = request.POST.get('id')
        name = request.POST.get('name')
        gender = request.POST.get('gender')
        age = request.POST.get('age')
        email = request.POST.get('email')
        class_id = request.POST.get('class_id')
        if id:
            students = Student.objects.filter(id=id)
        elif name:
            students = Student.objects.filter(name=name)
        elif gender:
            students = Student.objects.filter(gender=gender)
        elif age:
            students = Student.objects.filter(age=age)
        elif email:
            students = Student.objects.filter(email=email)
        elif class_id:
            students = Student.objects.filter(class_id=class_id)
    return render(request, 'search_student.html', {'students': students})

创建模板

在templates目录下创建HTML模板文件,实现表单提交和数据展示等功能。具体示例代码如下:

添加学生信息模板

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>添加学生信息</title>
</head>
<body>
    <h1>添加学生信息</h1>
    <form action="{% url 'add_student' %}" method="post">
        {% csrf_token %}
        <p><label>学号: </label><input type="text" name="id"></p>
        <p><label>姓名: </label><input type="text" name="name"></p>
        <p><label>性别: </label><input type="radio" name="gender" value="男">男<input type="radio" name="gender" value="女">女</p>
        <p><label>年龄: </label><input type="text" name="age"></p>
        <p><label>邮箱: </label><input type="text" name="email"></p>
        <p><label>班级: </label><input type="text" name="class_id"></p>
        <input type="submit" value="添加">
    </form>
</body>
</html>

修改学生信息模板

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>修改学生信息</title>
</head>
<body>
    <h1>修改学生信息</h1>
    <form action="{% url 'update_student' %}" method="post">
        {% csrf_token %}
        <p><label>学号: </label><input type="text" name="id"></p>
        <p><label>姓名: </label><input type="text" name="name"></p>
        <p><label>性别: </label><input type="radio" name="gender" value="男">男<input type="radio" name="gender" value="女">女</p>
        <p><label>年龄: </label><input type="text" name="age"></p>
        <p><label>邮箱: </label><input type="text" name="email"></p>
        <p><label>班级: </label><input type="text" name="class_id"></p>
        <input type="submit" value="修改">
    </form>
</body>
</html>

查询学生信息模板

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>查询学生信息</title>
</head>
<body>
    <h1>查询学生信息</h1>
    <form action="{% url 'search_student' %}" method="post">
        {% csrf_token %}
        <p><label>学号: </label><input type="text" name="id"></p>
        <p><label>姓名: </label><input type="text" name="name"></p>
        <p><label>性别: </label><input type="radio" name="gender" value="男">男<input type="radio" name="gender" value="女">女</p>
        <p><label>年龄: </label><input type="text" name="age"></p>
        <p><label>邮箱: </label><input type="text" name="email"></p>
        <p><label>班级: </label><input type="text" name="class_id"></p>
        <input type="submit" value="查询">
    </form>
    <table border="1">
        <tr>
            <th>学号</th>
            <th>姓名</th>
            <th>性别</th>
            <th>年龄</th>
            <th>邮箱</th>
            <th>班级</th>
        </tr>
        {% for student in students %}
        <tr>
            <td>{{ student.id }}</td>
            <td>{{ student.name }}</td>
            <td>{{ student.gender }}</td>
            <td>{{ student.age }}</td>
            <td>{{ student.email }}</td>
            <td>{{ student.class_id }}</td>
        </tr>
        {% endfor %}
    </table>
</body>
</html>

5. 部署项目

完成代码编写后,需要将代码部署到服务器上,让用户能够访问。具体的部署方式视实际情况而定,可以使用Docker、Nginx、Supervisord等工具进行部署。

以上便是Python+Django+SQL学生信息管理后台开发的完整攻略及示例。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python+django+sql学生信息管理后台开发 - Python技术站

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

相关文章

  • Django Rest Framework之用户频率/访问次数限制

      settings.py: REST_FRAMEWORK = { ‘DEFAULT_THROTTLE_CLASSES’:[‘api.utils.mythrottle.UserThrottle’,] ‘DEFAULT_THROTTLE_RATES’: { ‘未认证用户’: ’10/m’, ‘已认证用户’: ‘100/h’, }, }   mythrottle…

    2023年4月9日
    00
  • 使用django-suit为django 1.7 admin后台添加模板

    使用django-suit为Django 1.7及以上版本的admin后台添加模板,可以美化后台的外观以及提供更多的功能。下面是步骤: 安装django-suit: 在终端中运行以下命令,进行安装: pip install django-suit 启用django-suit: 在你的settings.py文件中添加以下代码: INSTALLED_APPS =…

    Django 2023年5月16日
    00
  • PyCharm创建Django项目的简单步骤记录

    下面是详细讲解“PyCharm创建Django项目的简单步骤记录”的完整攻略。 1.环境准备 在开始创建Django项目之前,需要准备好以下环境: Python环境,可以到https://www.python.org/downloads/下载Python的安装包进行安装。 PyCharm IDE,可以到https://www.jetbrains.com/py…

    Django 2023年5月16日
    00
  • django admin 编辑页面(change page) 自定义字段, 展示数据

    最近遇到一个需求, 需要在django 的 admin 编辑页内展示由用户上传的进行反馈的图片, 还要支持点击查看原图, 所以需要在编辑页内自定义 img 标签及 a 标签进行图片的展示及点击跳转   import json from django.contrib import admin from django.utils.safestring impor…

    Django 2023年4月9日
    00
  • python3.6+linux服务器+django1.11连接MYSQL数据库

    1.django创建一个项目,在项目的settings.py中配置Mysql 1 DATABASES = { 2 ‘default’: { 3 ‘ENGINE’: ‘django.db.backends.mysql’, 4 ‘NAME’: ‘test’, 5 ‘USER’: ‘admin’, 6 ‘PASSWORD’:’admin’, 7 ‘HOST’:’1…

    Django 2023年4月13日
    00
  • Nginx,uWSGI与Django 应用的关系

    前因        关于WSGI、uWSGI、uwsgi、Nginx这些名词及与Django 项目的关系,之前有个善(漂)良(亮)的小姐姐问过我,当时我也不是很明白,没有给她解释的很清楚,很是后悔,现在结合网上的一些资料进行一下汇总,且加入了一些我自己的看法,有不足之处还望路过的大佬给予批评指正,拜谢! 名词介绍 WSGI (通信协议) 全称Web Serv…

    Django 2023年4月11日
    00
  • 在SAE上部署Python的Django框架的一些问题汇总

    下面是部署Python的Django框架在SAE上的一些问题汇总的完整攻略和两个示例说明。 1. 环境搭建 首先,需要在本地安装 Django 和 mysqlclient。可以使用以下命令: pip install django pip install mysqlclient 如果报错,可以尝试使用以下命令: pip install django –use…

    Django 2023年5月16日
    00
  • django前后端交互

    前后端交互的方式有两种,一种是自己写个html页面,插入数据,一种是使用django自带的后台管理,插入数据 下面介绍方式1: post.html <!DOCTYPE html> <html lang=”en”> <head> <meta charset=”UTF-8″> <title>Title&…

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