python删除学生信息_西游之路——python全栈——创建学生信息及删除

一、HTML前端操作

Title

{# 引入插件 #}

.icon{

margin: 0px 5px;

}

ID姓名年龄性别班级操作

{% for row in stu_list %}

{{row.id}}{{row.name}}{{row.age}}{{row.gender}}{{row.cs.name}}

{% endfor %}

{# jquery必须放插件前 #}

$(function() {

bindEvent();

bindSave();

bindDel();

bindDelConfirm();

});

function bindDel() {

$('#tb').on('click','.del-row',function() {

$('#delModal').modal('show');

//获取当前行的ID

var rowId = $(this).parent().parent().attr('nid');

//设置给delNid

$('#delNid').val(rowId);

});

}

function bindDelConfirm() {

$('#delConfirm').click(function() {

var nid = $('#delNid').val();

$.ajax({

url: '/del_student.html',

type: 'GET',

data: {nid: nid},

success: function(arg) {

var dict = JSON.parse(arg);

if(dict.static) {

$('tr[nid="'+ nid +'"]').remove();

$('#delModal').modal('hide');

}

}

});

});

}

function bindEvent() {

$('#addBtn').click(function() {

$('#addModal').modal('show');

});

}

function bindSave() {

$('#btnSave').click(function() {

// 获取表单所有信息,可优化,见最后

var postData = {};

$('#addModal').find('input,select').each(function () {

console.log($(this)[0]);

var v = $(this).val();

var n = $(this).attr('name');

if(name=='gender'){

if($(this).prop('checked')){

postData[n] = v;

}

}else{

postData[n] = v;

}

});

console.log(postData);

$.ajax({

url: '/addStudent.html',

type: 'POST',

data: postData,

success: function(arg) {

console.log(arg);

//arg为字符串

//JSON.parse将字符串转行为字典

var dict = JSON.parse(arg);

//字典用点取值

if(dict.status) {

//window.location.reload();

//自增id = dict.data

createRow(postData, dict.data);

//关闭对话框

$('#addModal').modal('hide');

}else {

$('#errorMsg').text(dict.message);

}

}

});

});

function createRow(postData, nid) {

var tr = document.createElement('tr');

$(tr).attr('nid',nid);

var tdId = document.createElement('td');

tdId.innerHTML = nid;

$(tr).append(tdId);

var tdUser = document.createElement('td');

tdUser.innerHTML = postData.username;

$(tr).append(tdUser);

var tdAge = document.createElement('td');

tdAge.innerHTML = postData.age;

$(tr).append(tdAge);

var tdAge = document.createElement('td');

if(postData.gender == '1') {

tdAge.innerHTML = 'True';

}else{

tdAge.innerHTML = 'False';

}

$(tr).append(tdAge);

var tdClass = document.createElement('td');

var text = $('select[name="cls_id"]').find('option[value="' + postData.cls_id + '"]').text();

tdClass.innerHTML = text;

$(tr).append(tdClass);

//创建标签第二种方式,用字符串

var tdHandle = '';

$(tr).append(tdHandle);

$('#tb').append(tr);

}

}

二、py文件后台操作

from django.shortcuts import render,HttpResponse

from app01 import models

# Create your views here.

def students(request):

stu_list = models.Students.objects.all()

cls_list = models.Classes.objects.all()

return render(request,"students.html",{"stu_list": stu_list, 'cls_list': cls_list})

import json

def addStudent(request):

response = {'status': True, 'message': None, 'data': None}

try:

u = request.POST.get("username")

a = request.POST.get("age")

g = request.POST.get("gender")

c = request.POST.get("cls_id")

obj = models.Students.objects.create(

name=u,

age=a,

gender=g,

cs_id=c

)

response['data'] = obj.id

except Exception as e:

response['status'] = False

response['message'] = '用户输入有误'

result = json.dumps(response,ensure_ascii=False)

return HttpResponse(result)

def del_student(request):

response = {'static': True, 'message': None}

try:

nid = request.GET.get("nid")

models.Students.objects.filter(id=nid).delete()

except Exception as e:

print(555555555,type(e))

response['static'] = False

result = json.dumps(response)

return HttpResponse(result)

总结:

1、序列化

Python:

字符串 = json.dumps(对象)

对象 = json.loads(字符串)

JavaScript:

对象 = JSON.parse(字符串)

字符串 = JSON.stringify(对象)

应用场景:

数据传输时,发送和接收都以字符串形式进行

2.ajax

$.ajax({

url:

type:

data:

dataType: 'JSON',         // 自动把arg转为对象

success: function(arg) {

// arg是对象

}

})

3、

HTML中获取数据(input和select标签)   =》 取出数据存入一个字典,可直接用于ajax的data使用

4、事件委托

$('要绑定标签的上级标签’).on('click', '要绑定的标签',function() {} )

$('要绑定标签的上级标签’).delegate( '要绑定的标签','click',function() {} )

5、表单获取优化

/*获取表单所有信息方式

1、使用each循环

2、var data = $('#form表单的ID').serialize() (优化推荐)

data存为字典类型,可直接调用

*/

报错归纳:

argument list

自变量列表

Internal Server Error

内部服务器错误

存在的bug:添加学生后不能直接删除,要刷新才能做删除操作

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以为您介绍如何使用 Python 制作一个简易的学生信息管理系统。这个系统将使用面向对象编程的方式实现,可以方便地添加删除和修改学生信息。 首先,我们需要定义一个 `Student` 类,用来表示学生信息。每个学生都有姓名、学号、年龄等基本信息,可以使用类的属性来表示: ```python class Student: def __init__(self, name, student_id, age): self.name = name self.student_id = student_id self.age = age ``` 在 `__init__` 方法,我们定义了三个属性,分别对应学生的姓名、学号和年龄。接下来,我们需要添加一些方法,来实现学生信息添加删除和修改: ```python class Student: def __init__(self, name, student_id, age): self.name = name self.student_id = student_id self.age = age def get_name(self): return self.name def set_name(self, name): self.name = name def get_student_id(self): return self.student_id def set_student_id(self, student_id): self.student_id = student_id def get_age(self): return self.age def set_age(self, age): self.age = age ``` 在上面的代码,我们定义了六个方法,分别对应获取和设置学生的姓名、学号和年龄。这些方法可以方便地对学生信息进行修改。 接下来,我们可以创建一个 `StudentManager` 类,用来管理所有的学生信息。这个类包含了一个学生列表,可以添加删除和修改学生信息: ```python class StudentManager: def __init__(self): self.students = [] def add_student(self, student): self.students.append(student) def remove_student(self, student): self.students.remove(student) def get_all_students(self): return self.students def search_student_by_id(self, student_id): for student in self.students: if student.get_student_id() == student_id: return student return None ``` 在上面的代码,我们定义了四个方法,分别对应添加删除、获取所有学生和根据学号查找学生。这些方法可以方便地对学生信息进行管理。 现在,我们可以创建一个 `main` 函数,来实现学生信息管理系统的基本功能: ```python def main(): manager = StudentManager() # 添加学生 student1 = Student('张三', '001', 18) manager.add_student(student1) student2 = Student('李四', '002', 19) manager.add_student(student2) student3 = Student('王五', '003', 20) manager.add_student(student3) # 查找学生 s = manager.search_student_by_id('001') print(s.get_name(), s.get_student_id(), s.get_age()) # 修改学生信息 s.set_name('赵六') s.set_age(21) # 删除学生 manager.remove_student(student3) # 打印所有学生信息 students = manager.get_all_students() for student in students: print(student.get_name(), student.get_student_id(), student.get_age()) ``` 在上面的代码,我们首先创建了一个 `StudentManager` 对象,并添加了三个学生。然后,我们使用 `search_student_by_id` 方法查找学号为 '001' 的学生,并打印出其姓名、学号和年龄。接着,我们使用 `set_name` 和 `set_age` 方法修改了该学生的姓名和年龄。然后,我们使用 `remove_student` 方法删除了一个学生。最后,我们使用 `get_all_students` 方法获取所有学生信息,并打印出来。 这样,一个简易的学生信息管理系统就完成了。您可以根据自己的需求,继续添加其他功能,如文件读写、GUI 界面等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值