小工具知识网

当前位置: 首页 > 行业知识 > python+Django学生管理系统

行业知识

python+Django学生管理系统

2026-10-31 20:55:31 来源:互联网转载

目录

目录

1.创建文件夹

2.创建项目

3.进行调试

4.创建应用app

5.创建一个新的数据库 student

6.创建templates文件夹存放html文件

7.在app中的models文件中添加表

7.1 orm字段类型

8.配置setting文件

​编辑

9. 将模板储存在app中

​编辑

10.数据迁移

11.实现登录

11.0 创建中间件middieware

11.1 配置setting

 11.2设置用户名和密码

11.3在views中设置登录视图

11.4 添加登录路由

11.5 创建登录页面html

12 创建学生管理主页面

12.1 创建student页面

13 添加增加学生功能

13.1 创建添加学生页面

13.2 在view中创建添加函数

 13.3添加路由

13.4在student.html中创建添加学生链接

 ​编辑

14. 修改功能

14.1创建修改学生页面

 14.2 在view中创建添加函数

 14.3添加路由

 14.4在student.html中创建修改链接

​编辑

15.  删除功能

 15.1 在view中创建删除函数

  15.2 添加路由

  15.3 在student.html中创建删除链接

​编辑

16. views.py中的代码

17. student.html中的代码

总结



1.创建文件夹

首先要先启动mysql

创建一个新的文件夹用来存放其中内容

2.创建项目

鼠标右击打开终端

在终端中输入

 django-admin startproject aaa

创建一个名为aaa的项目文件 

3.进行调试

打开pycharm进行调试

打开pycharm,打开学生管理系统文件

从左上角打开,然后进行编辑配置

添加新的运行配置,选择python

输入runsever,点击确定

4.创建应用app

在项目aaa中进入终端,输入

 python manage.py startapp app

5.创建一个新的数据库 student

6.创建templates文件夹存放html文件

7.在app中的models文件中添加表

以表名创建一个类,类名遵循大驼峰命名法;实例方法表示表中的字段名;

7.1 orm字段类型

  1. 表示文本的字段类型
    • CharField、TextField——字符串、文本
  2. 数字(整数)
    • IntegerField——整数
    • SmallIntegerField——整数
    • BigIntegerField——整数
  3. 数字(小数)
    • FloatField、DecimalField——小数
  4. 日期与时间
    • DateField——日期
    • TimeField——时间
    • DateTimeField——日期时间
  5. 特殊类型
    • OneToOneField——一对一关联
    • ForeignKey——外键关联
    • ManyToManyField——多对多关联

max_length指定最大长度

Student是学生系统表

User是后面登录用的表,用来储存用户和密码

8.配置setting文件

导入os模板

找到 INSTALLED_APPS(在34行左右) 添加app应用

在 TEMPLATES中的DIRS中添加

os.path.join(BASE_DIR,'templates')

配置DATABASES 连接数据库:

参数说明:

  1. default——默认的数据库,可配置多个数据,使用名称来区分,也就是说,可以配置多个数据库连接信息的
  2. ENGINE——数据库引擎
  3. NAME——数据库名称
  4. USER——数据库登录用户名
  5. PASSWORD——数据库登录密码
  6. HOST——数据库访问地址
  7. PORT——数据库访问端口

由于这次并没有使用静态所以就没有配置静态资源

9. 将模板储存在app中

首先在app中创建一个url路由文件

路由转发

分配url

10.数据迁移

python manage.py makemigrations
python manage.py migrate

使用这两条命令进行数据迁移,迁移完成后会出现一个migrations中会出现一个新文件可以在文件夹中查看数据是否迁移成功

11.实现登录

11.0 创建中间件middieware

创建login.html登录页面(如果页面运行的时候出现重定向次数过多要在第二个app/login后加/)

11.1 配置setting

写完中间件后要在setting中进行配置,将下面的代码添加到MIDDLEWARE中

'middleware.auth.AuthMiddleware'

 11.2设置用户名和密码

在user表中设置用户名和密码

点右下角对勾保存;

11.3在views中设置登录视图

def login(request):    if request.method == 'GET':        return render(request, 'login.html')    else:        # 获取用户名和密码        post_username = request.POST.get('username')        post_password = request.POST.get('password')        try:            # 验证用户是否登录成功            user_model = User.objects.get(username=post_username, password=post_password)            # 将用户信息存在 session中            request.session['user'] = post_username  # {}            print(user_model.username, user_model.password)            return redirect('/app/student')        except:            return HttpResponse('用户名或密码错误')def logout(request):    request.session.flush()  # 清除当前登录用户的session数据    return redirect('/app/login')

11.4 添加登录路由

11.5 创建登录页面html

        Title  {% csrf_token %}      用户名:            密码:              

在终端中运行manage文件

在浏览器中输入ip和端口号和路由进入登录页面

12 创建学生管理主页面

首先创建一个通用模板

12.1 创建student页面

继承layout.html内容(这里只是为大家简单展示一下继承的用法)

{% extends 'layout.html' %}{% block main %}增加学生
{% for item in ls %} {% endfor %}
姓名 年龄 性别
{{ item.name }} {{ item.age }} {{ item.sex }}
{% endblock %}

 12.2 创建views中student函数

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

12.3 添加路由

登录完成后就会跳转到student页面

13 添加增加学生功能

13.1 创建添加学生页面

{% extends 'layout.html' %}{% block main %}    {% csrf_token %}

学生姓名

学生性别 男 女

学生年龄

添加

{% endblock %}

13.2 在view中创建添加函数

def add(request):    if request.method == 'GET':        return render(request,'add.html')    else:        name = request.POST.get('name')        sex = request.POST.get('sex')        age = request.POST.get('age')        Student.objects.create(name = name,sex=sex,age=age)    return redirect('/app/student')

 13.3添加路由

13.4在student.html中创建添加学生链接

 

14. 修改功能

14.1创建修改学生页面

{% extends 'layout.html' %}{% block main %}    {% csrf_token %}

学生姓名

学生性别 男 女

学生年龄

修改

{% endblock %}

 14.2 在view中创建添加函数

def update(request):    id = request.GET.get('id')    if request.method == 'GET':        ls = Student.objects.get(id = id)        return  render(request,'update.html',{            'ls':ls        })    else:        name = request.POST.get('name')        age = request.POST.get('age')        sex = request.POST.get('sex')        Student.objects.filter(id=id).update(            name = name,            age = age,            sex = sex        )        return redirect('/app/student')

 14.3添加路由

 14.4在student.html中创建修改链接

15.  删除功能

 15.1 在view中创建删除函数

def delete(request):    id = request.GET.get('id')    Student.objects.filter(id=id).delete()    return redirect('/app/student')

  15.2 添加路由

  15.3 在student.html中创建删除链接

 

16. views.py中的代码

下面是views.py中的所有代码

from django.http import HttpResponsefrom django.shortcuts import render, redirect# Create your views here.from app.models import Student, Userdef student(request):    ls = Student.objects.all()    return render(request,'student.html',{'ls':ls})def add(request):    if request.method == 'GET':        return render(request,'add.html')    else:        name = request.POST.get('name')        sex = request.POST.get('sex')        age = request.POST.get('age')        Student.objects.create(name = name,sex=sex,age=age)    return redirect('/app/student')def delete(request):    id = request.GET.get('id')    Student.objects.filter(id=id).delete()    return redirect('/app/student')def update(request):    id = request.GET.get('id')    if request.method == 'GET':        ls = Student.objects.get(id = id)        return  render(request,'update.html',{            'ls':ls        })    else:        name = request.POST.get('name')        age = request.POST.get('age')        sex = request.POST.get('sex')        Student.objects.filter(id=id).update(            name = name,            age = age,            sex = sex        )        return redirect('/app/student')def login(request):    if request.method == 'GET':        return render(request, 'login.html')    else:        # 获取用户名和密码        post_username = request.POST.get('username')        post_password = request.POST.get('password')        try:            # 验证用户是否登录成功            user_model = User.objects.get(username=post_username, password=post_password)            # 将用户信息存在 session中            request.session['user'] = post_username  # {}            print(user_model.username, user_model.password)            return redirect('/app/student')        except:            return HttpResponse('用户名或密码错误')def logout(request):    request.session.flush()  # 清除当前登录用户的session数据    return redirect('/app/login')

17. student.html中的代码

下面是student.html中的代码

{% extends 'layout.html' %}{% block main %}增加学生
{% for item in ls %} {% endfor %}
姓名 年龄 性别 操作
{{ item.name }} {{ item.age }} {% if item.sex == '1' %} 女 {% else %} 男 {% endif %} {item.id}}">删除 {item.id}}">修改
{% endblock %}

总结

提示:以上就是本文是全部内容

上一篇:怎么看服务器尺寸多大?

下一篇:绿宝石浇水秘籍,轻松掌握绿植生机勃发之道!