学员管理示例——班级管理(单表操作)
Posted lujun1028
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了学员管理示例——班级管理(单表操作)相关的知识,希望对你有一定的参考价值。
一、新建views文件夹
1、新建views文件夹目的:给不同管理的操作分类,比如班级操作归为一类。
2、必须删除原来的views,以免路径搜索不到新建views文件夹
3、创建classes.py文件
二、操作流程(URL -> 函数 -> html文件 -> URL)
URL路由
from django.contrib import admin
from django.urls import re_path
from app01.views import classes # 引入模块
urlpatterns = [
re_path(‘admin/‘, admin.site.urls),
re_path(‘classes.html/$‘, classes.get_classes),
re_path(‘add_classes.html$‘, classes.add_classes),
re_path(‘del_classes.html$‘, classes.del_classes),
re_path(‘edit_classes.html$‘, classes.edit_classes),
]
注意:
1、每个url路由最后由$符结束,防止检索出错。
2、第一个url路由必须以 /$ 结尾,后面同上。(版本问题)
创建相应的函数
from django.shortcuts import render,HttpResponse,redirect
from app01 import models
def get_classes(request):
cls_list = models.Classes.objects.all()
# print(cls_list)
return render(request,"get_classes.html",{"cls_list":cls_list})
def add_classes(request):
if request.method == "GET":
return render(request, "add_classes.html")
elif request.method == "POST":
title = request.POST.get("title")
print(title)
models.Classes.objects.create(name=title)
return redirect("/classes.html")
def del_classes(request):
nid = request.GET.get("nid")
print(nid)
models.Classes.objects.filter(id=nid).delete()
return redirect("/classes.html")
def edit_classes(request):
if request.method == "GET":
nid = request.GET.get("nid")
obj = models.Classes.objects.filter(id=nid).first()
return render(request,"edit_classes.html",{"obj":obj})
elif request.method == "POST":
# nid以get请求方式传入
nid = request.GET.get("nid")
title = request.POST.get("title")
models.Classes.objects.filter(id=nid).update(name=title)
return redirect("/classes.html")
总结:
1、从数据库取数据: models.Classes.objects.filter(id=nid).update(name=title)
2、取返回值数据:request.GET.get("nid")
注意:
1、render是打开HTML文件,而redirect是url路由
2、跳转至url路由时,需在前加 / 斜杆,打开跳转HTML文件时则不用
创建HTML文件
<div>
<a href="/add_classes.html">添加</a>
</div>
<div>
<table border="1">
<thead>
<tr>
<th>ID</th> {# 列名 #}
<th>名称</th>
<th>操作</th>
</tr>
</thead>
<tbody>
{% for row in cls_list %}
<tr>
<td> {# 行,对应上面的列 #}
{{row.id}}
</td>
<td>
{{row.name}}
</td>
<td>
<a href="/del_classes.html?nid={{row.id}}" >删除</a>
|
<a href="/edit_classes.html?nid={{row.id}}" >编辑</a>
</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
<form action="/add_classes.html" method="POST">
{% csrf_token %} {# 解除POST请求 #}
<input type="text" name="title" >
<input type="submit" value="提交" > {# value为默认值 #}
</form>
<form action="/edit_classes.html?nid={{obj.id}}" method="POST"> {# 用get请求发送id更简洁 #}
{% csrf_token %}
<!--<input type="text" name="id" value="{{obj.id}}" style="display:none">--> {# 隐藏ID #}
<input type="text" name="title" value="{{obj.name}}">
<input type="submit" value="提交">
</form>
总结:
1、页面跳转为url路由请求
以上是关于学员管理示例——班级管理(单表操作)的主要内容,如果未能解决你的问题,请参考以下文章