在上一篇中(Django 练习班级管理系统一 https://www.cnblogs.com/klvchen/p/11078174.html),使用的是莫泰对话框的方式提交数据,适用于数据量少的操作。若业务需要数据多,数据量大的操作,可以使用单独页面进行添加,下面是具体例子:
在 classes.html 页面下修改 a 标签:
<h1>班级管理</h1>
<div>
<input id="id_add" type="button" value="添加">
<a href="/add_classes.html">添加</a>
在 urls.py 上添加:
path('add_classes.html', views.handle_add_classes),
在 views.py 上 添加:
@auth
def handle_add_classes(request):
message = ""
if request.method == 'GET':
return render(request, 'add_classes.html', {'msg': message})
elif request.method == 'POST':
# 获取 POST 提交数据中的 caption 值
caption = request.POST.get('caption')
if caption:
# 值不为空,则在数据库中创建
models.Classes.objects.create(caption=caption)
else:
message = '标题不能为空'
return render(request, 'add_classes.html', {'msg': message})
# 添加成功后,返回班级列表
return redirect('/classes.html')
else:
return redirect('/index.html')
在 templates 文件夹下,添加一个 add_classes.html 页面
{% extends "layout.html" %}
{% block css %}
{% endblock %}
{% block content %}
<h1>添加班级</h1>
<form action="/add_classes.html" method="post">
<input type="text" name="caption">
<input type="submit" value="提交">{{ msg }}
</form>
{% endblock %}
{% block js %}
<script>
$(function () {
$('#menu_class').addClass('active');
})
</script>
{% endblock %}