目的:图书编辑、删除、查询功能;
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%}