Django 练习班级管理系统二 -- 添加班级数据

在上一篇中(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 %}

原文地址:https://www.cnblogs.com/klvchen/p/11090367.html