python学生管理系统

   学生信息管理系统,首先由管理员增加、删除、修改、查找、导入教师信息,再有教师界面登录不同的教师类别,辅导员老师负责增加、删除、查找、学生的相关信息、教务老师负责增加、删除、修改、查找、有哪些课程的相关信息、授课教师负责增加、删除、修改、查找、学生本门课的分数,学生通过注册将信息加到数据库中,再进行登录,学生可以通过本系统来查成绩、查询及修改个人信息,并查询所在班级有哪些课程安排。

项目意义

(1)保证信息的准确性和时效性,随时通过计算机对系统进行管理,使得学生信息处于最新状态,保证统计数据和分析的准确。

(2)减轻劳动强度、提高工作效率、增加学生管理的透明度。高校学生管理信息系统可以发挥计算机的强大功能,让管理人员从大量繁琐的手工劳动中解放出来,将单调枯燥的纸张涂写变成灵活的电子信息操作。并充分利用网络优势,加快学校内部学生信息和文档的发布、传送和获取,改善和优化学生工作,使各个部门之间的工作联系紧密、井然有序、清楚明晰,大大减轻工作负担,提高工作效率,增加学生管理的透明度。

(3)降低管理成本,由于采用本系统的原因,使辅导员管理工作一改往日埋在各种表格中的被动局面,基本实现了无纸化办公,根除了很多日常管理中的浪费现象,体现出现代化学生管理的优势。

(4)规范化管理,由于采用了计算机统计分析学生信息,一些原始信息在录入时就必须要求准确录入,这就要求管理人员在提供信息时要准确,同时要求在录入时也要十分认真,这样做是为了将错误降到最低,提高系统工作的准确率,从而实现学生管理工作规范化。

数据库介绍:
MySQL是一种DBMS,而且是一种一个小型的开源的关系型数据库管理系统。2008年1月16日MySQL AB被Sun公司收购。而2009年,SUN又被Oracle收购。就这样如同一个轮回,MySQL成为了Oracle公司的另一个数据库项目。

MySQL它在世界范围内得到了广泛的安装和使用,应该是使用人数最多的数据库软件了,因为它有着这样的特性:

成本——MySQL是开源软件,可以免费使用和修改。

性能——MySQL性能很好处理速度很快。

简单——MySQL很容易安装和使用,对新手友好。

MySQL数据库软件也是使用最常用的数据库管理语言:结构化查询语言(SQL)进行数据库管理和操作。

**

python如何使用sql语句实现mysql数据库的增删改查?

**
这里使用pymysql 来操作 MySQL实现学生数据的增删改查,pymysql 则是一个纯 Python 实现的 MySQL 客户端操作库

class StudentManager(object):
    def __init__(self):
        # 存储学员数据 -- 列表
        self.student_list = []

    # 一. 程序入口函数
    def run(self):
        # 1. 加载文件里面的学员数据
        self.load_student()

        def save():
            # print("启动定时器")
            self.save_student()
            timer = threading.Timer(1, function=save)  # 重新创建定时器,使得定时器能够一直工作
            timer.start()  # 启动定时器

        t1 = threading.Timer(1, function=save)  # 创建定时器
        t1.start()  # 启动定时器

        while True:
            # 2. 显示功能菜单
            self.show_menu()

            # 3. 用户输入目标功能序号
            menu_num = int(input('请输入您需要的功能序号:'))

            # 4. 根据用户输入的序号执行不同的功能 -- 如果用户输入1,执行添加
            if menu_num == 1:
                # 添加学员
                self.add_student()
            elif menu_num == 2:
                # 删除学员
                self.del_student()
            elif menu_num == 3:
                # 修改学员信息
                self.modify_student()
            elif menu_num == 4:
                # 查询学员信息
                self.search_student()
            elif menu_num == 5:
                # 显示所有学员信息
                self.show_student()
            elif menu_num == 6:
                # 保存学员信息
                self.save_student()
            elif menu_num == 7:
                t1.cancel()  # 取消定时器
                # 退出系统 -- 退出循环
                break

数据库连接函数:

def datac(self):#连接数据库
        db = pymysql.connect(host='localhost',
                     user='root',
                     password='456566546',
                     database='lijin'
                     )

python_sql执行语句:

        cur.execute("DROP TABLE IF EXISTS Student")  # 执行SQL语句
        sqlQuery = "CREATE TABLE Student(Name CHAR(20) NOT NULL ,Gender CHAR(20),Tel CHAR(20))" 
        cur.execute(sqlQuery)  # 执行SQL语句

数据存储定时器函数:

        def save():
            # print("启动定时器")
            self.save_student()
            timer = threading.Timer(1, function=save)  # 重新创建定时器,使得定时器能够一直工作
            timer.start()  # 启动定时器

        t1 = threading.Timer(1, function=save)  # 创建定时器
        t1.start()  # 启动定时器

将本地列表数据保存到数据库语句:

            for a in new_list:
                sqlQuery = "INSERT INTO Student(Name, Gender, Tel) VALUE (%s, %s, %s)"  
                value = (a['name'], a['gender'], a['tel']) 
                cur.execute(sqlQuery, value) 
                db.commit() 
                db.close()

在系统运行过程中可能会出现报错或者bug这时我们还需要用到python中的try函数

异常:
程序在运行的时候,如果python解释器遇到一个错误,会停止程序的执行,
并且提示一些错误的信息,这就是异常
我们在程序开发的时候,很难将所有的特殊情况都处理,
通过异常捕获可以针对
突发事件做集中处理,从而保证程序的健壮性和稳定性

在程序开发中,如果对某些代码的执行不能确定(程序语法完全正确)
可以增加try来捕获异常

try这个关键字来捕获异常
try:尝试执行的代码
except:出现错误的处理

try:
    # 不能确定正确执行的代码
    num = int(input('请输入一个数字:'))
except:
    print('请输入正确的整数')

print('*' * 50)
  • 0
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,您可以参考以下步骤: 1. 首先在Django项目中创建一个新的app,例如命名为“scriptrunner”。 2. 在该app下创建一个名为“scripts”的文件夹,用于存放python脚本文件。 3. 在该app下创建一个名为“models.py”的文件,定义一个名为“Script”的模型,用于存储Python脚本文件的相关信息,例如文件名称、文件路径、运行状态等。 ``` python from django.db import models class Script(models.Model): name = models.CharField(max_length=255) path = models.CharField(max_length=255) status = models.CharField(max_length=10, default='停止') created_at = models.DateTimeField(auto_now_add=True) updated_at = models.DateTimeField(auto_now=True) def __str__(self): return self.name ``` 4. 在该app下创建一个名为“forms.py”的文件,定义一个表单类,用于添加和修改Python脚本文件的相关信息。 ``` python from django import forms from .models import Script class ScriptForm(forms.ModelForm): class Meta: model = Script fields = ['name', 'path'] ``` 5. 在该app下创建一个名为“views.py”的文件,定义视图函数,用于处理用户请求,并调用Python脚本文件。 ``` python import os from django.shortcuts import render, redirect from django.views.decorators.csrf import csrf_exempt from django.contrib import messages from .models import Script from .forms import ScriptForm @csrf_exempt def script_list(request): scripts = Script.objects.all() return render(request, 'script_list.html', {'scripts': scripts}) @csrf_exempt def script_add(request): if request.method == 'POST': form = ScriptForm(request.POST) if form.is_valid(): script = form.save() messages.success(request, '添加成功!') return redirect('script_list') else: form = ScriptForm() return render(request, 'script_add.html', {'form': form}) @csrf_exempt def script_edit(request, script_id): script = Script.objects.get(id=script_id) if request.method == 'POST': form = ScriptForm(request.POST, instance=script) if form.is_valid(): script = form.save() messages.success(request, '修改成功!') return redirect('script_list') else: form = ScriptForm(instance=script) return render(request, 'script_edit.html', {'form': form, 'script': script}) @csrf_exempt def script_delete(request, script_id): script = Script.objects.get(id=script_id) script.delete() messages.success(request, '删除成功!') return redirect('script_list') @csrf_exempt def script_run(request, script_id): script = Script.objects.get(id=script_id) if script.status == '运行中': messages.error(request, '该脚本正在运行中,请勿重复执行!') return redirect('script_list') script.status = '运行中' script.save() try: os.system('python {}'.format(script.path)) messages.success(request, '脚本执行成功!') except: messages.error(request, '脚本执行失败!') script.status = '停止' script.save() return redirect('script_list') ``` 6. 在该app下创建一个名为“urls.py”的文件,定义URL路由,将请求映射到对应的视图函数。 ``` python from django.urls import path from . import views urlpatterns = [ path('', views.script_list, name='script_list'), path('add/', views.script_add, name='script_add'), path('edit/<int:script_id>/', views.script_edit, name='script_edit'), path('delete/<int:script_id>/', views.script_delete, name='script_delete'), path('run/<int:script_id>/', views.script_run, name='script_run'), ] ``` 7. 在该app下创建一个名为“templates”的文件夹,用于存放HTML模板文件。 8. 在“templates”文件夹下创建一个名为“script_list.html”的文件,用于展示Python脚本文件的列表,并提供添加、修改、删除和运行脚本功能。 ``` html {% extends 'base.html' %} {% block content %} <h2>Python脚本文件列表</h2> <a href="{% url 'script_add' %}" class="btn btn-primary">添加脚本文件</a> <table class="table mt-3"> <thead> <tr> <th>#</th> <th>名称</th> <th>路径</th> <th>状态</th> <th>创建时间</th> <th>操作</th> </tr> </thead> <tbody> {% for script in scripts %} <tr> <td>{{ script.id }}</td> <td>{{ script.name }}</td> <td>{{ script.path }}</td> <td>{{ script.status }}</td> <td>{{ script.created_at }}</td> <td> <a href="{% url 'script_edit' script.id %}" class="btn btn-sm btn-primary">修改</a> <a href="{% url 'script_delete' script.id %}" class="btn btn-sm btn-danger" onclick="return confirm('确定要删除吗?')">删除</a> <a href="{% url 'script_run' script.id %}" class="btn btn-sm btn-success">运行</a> </td> </tr> {% endfor %} </tbody> </table> {% endblock %} ``` 9. 在“templates”文件夹下创建一个名为“script_add.html”的文件,用于添加Python脚本文件的信息。 ``` html {% extends 'base.html' %} {% block content %} <h2>添加Python脚本文件</h2> <form method="post"> {% csrf_token %} {{ form.as_p }} <button type="submit" class="btn btn-primary">添加</button> </form> {% endblock %} ``` 10. 在“templates”文件夹下创建一个名为“script_edit.html”的文件,用于修改Python脚本文件的信息。 ``` html {% extends 'base.html' %} {% block content %} <h2>修改Python脚本文件</h2> <form method="post"> {% csrf_token %} {{ form.as_p }} <button type="submit" class="btn btn-primary">保存</button> </form> {% endblock %} ``` 11. 最后,在Django项目的“settings.py”文件中添加以下配置。 ``` python INSTALLED_APPS = [ # ... 'scriptrunner', ] TEMPLATES = [ { # ... 'APP_DIRS': True, # ... }, ] MEDIA_ROOT = os.path.join(BASE_DIR, 'media') MEDIA_URL = '/media/' ``` 现在,您可以通过访问URL“/scriptrunner/”来打开Python脚本文件的列表页面,通过页面上的按钮来添加、修改、删除和运行Python脚本文件。在运行Python脚本文件时,系统会自动将其状态设置为“运行中”,待执行完成后再将其状态设置为“停止”。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值