web学生管理系统(Python)

服务端程序:

import flask
import sqlite3
import json

app = flask.Flask(__name__)

class StudentDB:
    def openDB(self):
        self.con = sqlite3.connect("students.db")
        print("连接成功")
        self.cursor = self.con.cursor()

    def closeDB(self):
        self.con.commit()
        self.con.close()

    def initTable(self):
        res = {}
        sql = """
            create table students (No varchar(16) primary key,
        Name varchar(16),
        Sex varchar(8), 
        Age int)
        """

        try:
            self.cursor.execute(sql)

            res["msg"] = "OK"
        except Exception as err:
            res["msg"] = str(err)
        return res

    def insertRow(self, No, Name, Sex, Age):
        res = {}
        try:
            self.cursor.execute("insert into students (No, Name, Sex, Age) values(?,?,?,?)", (No, Name, Sex, Age))
            res["msg"] = "OK"
        except Exception as err:
            res["msg"] = str(err)+"666"
        return res

    def deleteRow(self, No):
        res = {}
        try:
            self.cursor.execute("delete from students where No=?", (No,))
            res["msg"] = "OK"
        except Exception as err:
            res["msg"] = str(err)
        return res

    def selectRows(self):
        res = {}
        try:
            data = []
            self.cursor.execute("select * from students order by No")
            rows = self.cursor.fetchall()
            for row in rows:
                d = {}
                d["No"] = row[0]
                d["Name"] = row[1]
                d["Sex"] = row[2]
                d["Age"] = row[3]
                data.append(d)
            res["msg"] = "OK"
            res["data"] = data
        except Exception as err:
            res["msg"] = str(err)
        return res

@app.route("/", methods=["GET", "POST"])
def process():
    opt = flask.request.values.get("opt") if "opt" in flask.request.values else ""
    res = {}
    db = StudentDB()
    db.openDB()
    if opt == "init":
        res = db.initTable()
    elif opt == "insert":
        No = flask.request.values.get("No") if "No" in flask.request.values else ""
        Name = flask.request.values.get("Name") if "Name" in flask.request.values else ""
        Sex = flask.request.values.get("Sex") if "Sex" in flask.request.values else ""
        Age = flask.request.values.get("Age") if "Age" in flask.request.values else ""
        res = db.insertRow(No, Name, Sex, Age)
    elif opt == "delete":
        No = flask.request.values.get("No") if "No" in flask.request.values else ""
        res = db.deleteRow(No)
    else:
        res = db.selectRows()
    db.closeDB()
    return json.dumps(res)


if __name__ == "__main__":
    app.run()




客户端程序:

# coding=gbk
import urllib.request
import json

class Student:
    def __init__(self, No, Name, Sex, Age):
        self.No = No
        self.Name = Name
        self.Sex = Sex
        self.Age = Age

    def show(self):
        print("%- 16s %-16s %-8s %-4d" % (self.No, self.Name, self.Sex, self.Age))


students = []   # 存储学生对象
url = "http://127.0.0.1:5000"


def listStudents():
    global students
    print("%- 16s %-16s %-8s %-4s" % ("No", "Name", "Sex", "Age"))
    for s in students:
        s.show()


def insertStudent(s):
    global students
    i = 0
    while (i < len(students) and s.No > students[i].No):
        i = i + 1
    if (i < len(students) and s.No == students[i].No):
        print(s.No + "already exists")
        return False
    students.insert(i, s)
    return True


def deleteRow():
    global students
    No = input("No=")
    if (No != ""):
        for i in range(len(students)):
            if (students[i].No == No):
                st = ""
                try:
                    st = "No=" + urllib.request.quote(No)
                    st = st.encode()
                    content = urllib.request.urlopen(url + "?opt=delete", st)
                    st = content.readline()
                    st = json.loads(st.decode())
                    st = st["msg"]
                except Exception as exp:
                    st = str(exp)
                if (st == "OK"):
                    del students[i]
                    print("删除成功")
                else:
                    print(st)
                break


def insertRow():
    No = input("No=")
    Name = input("Name=")

    while True:
        Sex = input("Sex=")
        if (Sex == "男" or Sex == "女"):
            break
        else:
            print("Sex is not valid")

    Age = input("Age=")

    if (Age == ""):
        Age = 0
    else:
        Age = int(Age)

    if No != "" and Name != "":
        s = Student(No, Name, Sex, Age)
        for x in students:
            if (x.No == No):
                print(No + "already exists")
                return

        st = ""

        try:
            st = "No=" + urllib.request.quote(No) + "&Name=" + urllib.request.quote(
                Name) + "&Sex=" + urllib.request.quote(Sex) + "&Age=" + str(Age)
            st = st.encode()
            content = urllib.request.urlopen(url + "?opt=insert", st)
            st = content.read()
            st = json.loads(st.decode())
            st = st["msg"]
        except Exception as exp:
            st = str(exp)

        if (st == "OK"):
            insertStudent(s)
            print("增加成功")
        else:
            print("增加失败")
            print(st)
    else:
        print("学号、姓名不能为空")


def initialize():
    st = ""
    try:
        content = urllib.request.urlopen(url + "?opt=init")
        st = content.read()
        st = json.loads(st.decode())
        st = st["msg"]
    except Exception as exp:
        st = str(exp)
    if (st == "OK"):
        print("初始成功")
    else:
        print(st)
    return st


def readStudents():
    print("获取服务端数据")
    global students
    try:
        students.clear()
        content = urllib.request.urlopen(url)
        data = b""
        while True:
            buf = content.read(1024)
            if (len(buf) > 0):
                data = data + buf
            else:
                break
        data = data.decode()
        data = json.loads(data)     # 转化为字典类型数据
        if data["msg"] == "OK":
            data = data["data"]
            for d in data:
                # each d is a dictionary
                s = Student(d["No"], d["Name"], d["Sex"], d["Age"])
                students.append(s)
                print("添加成功")
    except Exception as exp:
        print(exp)

try:
    readStudents()

    while True:
        print("")
        print("****学生名单***")
        print("0.初始化学生表")
        print("1.查看学生列表")
        print("2.增加学生记录")
        print("3.删除学生记录")
        print("4.退出这个程序")
        s = input("请选择(0,1,2,3,4):")
        if (s == "0"):
            initialize()
        elif (s == "1"):
            listStudents()
        elif (s == "2"):
            insertRow()
        elif (s == "3"):
            deleteRow()
        elif (s == "4"):
            break
except Exception as exp:
    print(exp)



  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
Python学生管理系统Web是一个使用Python语言和Flask框架开发学生管理系统,它可以实现学生信息的录入、修改、课程录入和查询、毕业学生去向查询、教师开设课程查看以及管理超级用户等功能。该系统使用MySQL数据库进行数据存储。 以下是一个示例的Python学生管理系统Web的功能演示: 1. 学生信息录入和修改: ```python from flask import Flask, request app = Flask(__name__) @app.route('/student', methods=['POST']) def add_student(): # 获取前端传递的学生信息 student_info = request.get_json() # 将学生信息存储到数据库中 # ... return '学生信息录入成功' @app.route('/student/<student_id>', methods=['PUT']) def update_student(student_id): # 获取前端传递的学生信息 student_info = request.get_json() # 根据学生ID更新学生信息 # ... return '学生信息修改成功' if __name__ == '__main__': app.run() ``` 2. 学生课程录入和查询: ```python from flask import Flask, request app = Flask(__name__) @app.route('/course', methods=['POST']) def add_course(): # 获取前端传递的课程信息 course_info = request.get_json() # 将课程信息存储到数据库中 # ... return '课程录入成功' @app.route('/course/<student_id>', methods=['GET']) def get_courses(student_id): # 根据学生ID查询学生的课程信息 # ... return '学生课程查询结果' if __name__ == '__main__': app.run() ``` 3. 毕业学生去向查询: ```python from flask import Flask, request app = Flask(__name__) @app.route('/graduate/<student_id>', methods=['GET']) def get_graduate_destination(student_id): # 根据学生ID查询学生的毕业去向信息 # ... return '学生毕业去向查询结果' if __name__ == '__main__': app.run() ``` 4. 教师开设课程查看: ```python from flask import Flask, request app = Flask(__name__) @app.route('/teacher/<teacher_id>/courses', methods=['GET']) def get_teacher_courses(teacher_id): # 根据教师ID查询教师开设的课程信息 # ... return '教师开设课程查询结果' if __name__ == '__main__': app.run() ``` 5. 管理超级用户: ```python from flask import Flask, request app = Flask(__name__) @app.route('/admin', methods=['POST']) def add_admin(): # 获取前端传递的管理员信息 admin_info = request.get_json() # 将管理员信息存储到数据库中 # ... return '管理员添加成功' if __name__ == '__main__': app.run() ```

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值