一、新建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路由请求
原文地址:https://www.cnblogs.com/Lujun1028/p/9573302.html
时间: 2024-11-11 10:08:26