四条路径如下,懒得加下划线了
1.查
1.1 infolist函数
views.py视图函数如图,数据库查询得到{obj,obj},一个obj就是一个用户数据
然后传入infolist.html文件
1.2infolist.html
在infolist.html文件中,用for循环遍历就可以遍历每个用户数据,每次循环创建一行tr,然后显示出来
1.3前端展示
2.添
2.1infoadd()视图函数
GET方法说明是直接请求该页面,应该返回html文件
POST说明用户填写了数据并传到了后端,拿到用户输入的数据就可以直接数据库创建行操作了,然后重定向(redirect,参数写的是url)到infolist页面
备注——用户输入的数据由html的form表单传来,且对应的是其中input的name属性(以及其他的)
2.2 infoadd.html
form没有写action是因为可以默认POST到原来的url
csrf_token是django的认证机制,需要添加
2.3前端
2.4在infolist加入一个链接,直接添加用户,比较方便
3.删
删除不需要写一个前端html页面,只需要在Infolist页面里加入一个删除的<a>,并且同时把删除的ID传到infodel函数,直接在infodel()中进行数据库删除操作
3.1a标签,url传id
就是使用了url?参数 的方式,把id传给了infodel
3.2infodel函数拿到参数
url?参数 是用GET方法对url进行的请求,可以用request.GET拿到参数
这里我们拿到要删除的数据的ID,直接进行数据库删除操作再重定向回Infolist即可
4.改
改和删都需要传id,才知道要改的是哪个数据,这里用另一种方式传Url
4.1urls.py
这么写在访问infoedit时后面必须跟上一个nid(即传参)
4.2 infolist.html的a标签(修改的链接)
在标签的url中加上个id,就对应了上述path,就可以直接传id
4.3 views.py的infoedit()
用这种方法,传的参数直接函数参数即可
GET:拿到id,我们可以数据库查询该数据,传到infoedit.html,这样就可以默认显示原来的数据
POST:拿到用户传来的修改后的数据,然后数据库 update操作,重定向回infolist
4.4 infoedit.html
和infoadd类似,就是用value来显示原数据值,