在线图书信息入库程序开发(三)

目的:图书编辑、删除、查询功能;

1、编写后端服务(views.py)

“编辑功能”代码如下:

1 def edit(request,): 
2     if request.method=='POST': 
3         isbn=request.POST.get("isbn") 
4         bk=book.objects.filter(isbn=isbn)[0] 
5         name=request.POST.get("name") 
6         author=request.POST.get("author") 
7         press=request.POST.get("press") 
8         kind=request.POST.get("kind") 
9         bk.name=name 
10         bk.author=author 
11         bk.press=press 
12         bk.kind=kind 
13         bk.date=datetime.now() 
14         bk.save() 
15         result={} 
16         result['msg']='success' 
17         result['state']=1 
18         return JsonResponse(result) 
19     else: 
20         isbn=request.GET.get("isbn") 
21         bk=book.objects.filter(isbn=isbn)[0] 
22         return render(request,'edit.html',{'book':bk}) 

“删除功能”

1 def delete(request,): 
2     isbn=request.GET.get('isbn') 
3     bk=book.objects.filter(isbn=isbn)[0]
 4     bk.delete() 
 5     return HttpResponseRedirect('/') 

“查询功能”

1 def searchByName(request): 
2     name=request.GET.get('name') 
3     books=book.objects(name__contains=name)
4     return render(request,'list.html',{'books':books}) 

2、前端页面

删除、查询、都不需要界面,在列表界面直接操作即可,此处需要编写图书信息编辑界面, 如下图所示:
在这里插入图片描述
在templates文件夹中新建edit.html文件,编写代码如下:

1 {%extends 'base.html'%}
 2 {%block content%} 
 3 <h3>编辑图书信息</h3> 
 4 {%if state %} 
5 <div class="alert alert‐success alert‐dismissable">
 6     <button type="button" class="close" data‐dismiss="alert" ariahidden="true"> 
 7     </button> 
8     您已成功提交图书信息!
 9 </div>
  10 {%endif%} 
  11 <div  class="form‐horizontal"> 
12     <div class="form‐group">
 13         <label  class="col‐sm‐2 control‐label">ISBN</label> 
 14         <div class="col‐sm‐10">
  15             <input disabled=true id="isbn" type="text" class="form‐contr ol"  placeholder="ISBN" required="required" value="{{book.isbn}}"> 
16         </div> 
17     </div>
 18     <div class="form‐group"> 
 19         <label  class="col‐sm‐2 control‐label">图书名称</label>
  20         <div class="col‐sm‐10"> 
21             <input id="name" type="text" class="form‐control"  placehold er="图书名称" required="required" value="{{book.name}}"> 
22         </div> 
23     </div>
24     <div class="form‐group"> 
25         <label  class="col‐sm‐2 control‐label">作者</label> 
26         <div class="col‐sm‐10"> 
27             <input id="author" type="text" class="form‐control"  placeho lder="作者" required="required" value="{{book.author}}"> 28         </div> 
29     </div> 
30     <div class="form‐group"> 
31         <label  class="col‐sm‐2 control‐label">出版社</label> 
32         <div class="col‐sm‐10"> 
33             <input id="press" type="text" class="form‐control"  placehol der="出版社" required="required" value="{{book.press}}"> 
34         </div> 
35     </div> 
36     <div class="form‐group"> 
37         <label  class="col‐sm‐2 control‐label">类别</label> 
38         <div class="col‐sm‐10"> 
39             <input id="kind" type="text" class="form‐control"  placehold er="类别" value="{{book.kind}}"> 
40         </div> 
41     </div> 
42     <div class="form‐group"> 
43         <div class="col‐sm‐offset‐2 col‐sm‐10"> 
44             <button id="btn_save" type="submit" class="btn btn‐success"> 保存</button> 
45             <a class="btn btn‐primary pull‐right" href="/">返回</a> 
46         </div> 47     </div> 
48 </div> 
49 <script> 
50     $(function(){ 51         $("#btn_save").click(function(){ 
52             var isbn=$("#isbn").val(); 
53             var name=$("#name").val(); 
54             var author=$("#author").val(); 
55             var press=$("#press").val(); 
56             var kind=$("#kind").val(); 
57             $.post('/edit',{ 
58                 isbn:isbn, 
59                 name:name, 
60                 author:author,
61                 press:press,
 62                 kind:kind 
63             },function(data){ 
64                 if(data.state==1){ 
65                     alert("修改成功!"); 
66                 }; 
67             }) 
68         }); 
69     }); 
70 </script> 
71 {%endblock%}

修改list.html文件,添加查询框,代码如下:

1 {%extends 'base.html'%}
 2 {%block content%}
  3 <div class="row"> 
4     <a type="button" class="btn btn‐success" href="/create"> <span class="   glyphicon glyphicon‐plus" 
5             style="margin‐right:5px;"></span>添加</a> 
6             <a href="" class="btn btn‐primary pull‐right">分类统计</a>
7 
8             <form action="/searchByName" method="GET" class="form‐inlin e pull‐right" style="margin‐right: 10px;">
 9                 <input name="name" type="text" class="formcontrol" style="margin‐left: 20px;margin‐right: 10px;">
 10     <button class="btn btn‐default" type="submit">查询</button>
 11             </form> 
12 </div>
 13 <table class="table table‐striped">
 14     <thead>
  15         <tr> 
16             <th>序号</th>
 17             <th>ISBN</th>
 18             <th>书名</th>
  19             <th>作者</th>
 20             <th>出版社</th>
  21             <th>图书类型</th>
 22             <th>入库时间</th> 
 23             <th>操作</th>
 24         </tr> 
25     </thead> 
26     <tbody>
27         {%for book in books%} 
28         <tr> 
29             <td>{{forloop.counter}}</td> 
30             <td>{{book.isbn}}</td>
 31             <td>{{book.name}}</td>
 32             <td>{{book.author}}</td> 
 33             <td>{{book.press}}</td> 
34             <td>{{book.kind}}</td> 
35             <td>{{book.date}}</td>
36
 37             <td> 
 38                 <a type="button" class="btn btn‐success btn‐sm" href="/e dit?isbn={{book.isbn}}">修改</a> 
39                 <a type="button" class="btn btn‐danger btn‐sm" href="/de lete?isbn={{book.isbn}}">删除</a></td> 
40         </tr>
 41         {%endfor%} 
42     </tbody> 
43 </table>
44
 45 {%endblock%}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

粉尘伴终生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值