1. 程式人生 > >Django之ORM使用以及模板語言

Django之ORM使用以及模板語言

跳轉 close nbsp size init b- create import 增刪改查

一、ORM版增刪改查

  1、ORM的語句

    1、類名.objects.all() --> 返回一個列表

    2、類名.objects.filter() --> 返回一個列表

    3、類名.objects.get() --> 返回一個對象

    4、類名.objects.create(name=‘‘) --> 創建一個對象,返回的就是剛創建的對象

    5、類名.objects.filter(id=‘‘).delete() --> 刪除

    6、obj = 類名.objects.get(id=‘‘)

      obj.name = ‘新值‘  --> 修改對象的屬性

      obj.save() --> 把修改後的值同步到數據庫

  2、Django模板語言

    1、for循環

      {{% for i in ret %}}

        {{ i }}

        {{ forloop.counter }} --> for 循環從1開始計數

        {{ forloop.counter0 }}  --> for 循環從0開始計數

      {{% endfor %}}

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片
 1 from django.shortcuts import render,redirect
 2 from app01.models import Press
 3 
 4 # Create your views here.
 5 
 6 
 7 # 出版社列表函數
 8 def press_list(request):
 9     # 獲取出版社數據庫中的所有數據
10     ret = Press.objects.all()
11     # 用html展示出版社列表
12     return render(request,
press_list.html,{ret:ret}) 13 14 15 # 添加出版社函數 16 def add_press(request): 17 # 判斷是不是POST請求方法(form表單中) 18 if request.method == POST: 19 # 獲取要添加的名字 20 new_name = request.POST.get(name) 21 # 在數據庫中創建新的出版社 22 Press.objects.create(name=new_name) 23 # 跳轉到出版社列表頁面 24 return redirect(/press_list/) 25 # 跳轉到添加頁面 26 return render(request,add_press.html) 27 28 29 # 刪除出版社函數 30 def delete_press(request): 31 # 獲取要刪除出版社的ID 32 delete_id = request.GET.get(id) 33 # 根據獲取的ID來刪除數據庫中對應的出版社 34 Press.objects.get(id=delete_id).delete() 35 # 跳轉到出版社列表 36 return redirect(/press_list/) 37 38 39 # 編輯出版社函數 40 def edit_press(request): 41 # 獲取要編輯的ID 42 edit_id = request.GET.get(id) 43 # 通過ID來獲取對象 44 press_obj = Press.objects.get(id=edit_id) 45 # 判斷是不是POST請求(form表單中) 46 if request.method == POST: 47 # 獲取修改以後的name 48 edit_name = request.POST.get(name) 49 # 重新給name賦值 50 press_obj.name = edit_name 51 # 把修改以後的name更新到數據庫 52 press_obj.save() 53 # 跳轉到出版社列表 54 return redirect(/press_list/) 55 # 跳轉到編輯頁面 56 return render(request,edit_press.html,{press_obj: press_obj})
views.py中所寫的內容

技術分享圖片

技術分享圖片
 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <meta name="viewport" content="width=device-width, initial-scale=1">
 6     <title>出版社頁面</title>
 7     <link rel="stylesheet" href="/static/bootstrap-3.3.7/css/bootstrap.css">
 8     <link rel="stylesheet" href="/static/font-awesome-4.7.0/css/font-awesome.css">
 9     <link rel="stylesheet" href="/static/bootstrap-sweetalert-master/dist/sweetalert.css">
10     <script src="/static/bootstrap-sweetalert-master/dist/sweetalert.js"></script>
11     <script src="/static/jquery-3.3.1.min.js"></script>
12     <script src="/static/bootstrap-3.3.7/js/bootstrap.js"></script>
13     <style>
14         table {
15 
16             border-spacing: 2px;
17             border-collapse: unset;
18         }
19         body{
20             font-size: 16px;
21         }
22     </style>
23 </head>
24 <body>
25 <table border="1">
26     <thead>
27     <tr>
28         <th>序號</th>
29         <th>id</th>
30         <th>name</th>
31         <th>操作</th>
32     </tr>
33     </thead>
34     <tbody>
35     {% for foo in ret %}
36         <tr>
37             <td>{{ forloop.counter }}</td>
38             <td>{{ foo.id }}</td>
39             <td>{{ foo.name }}</td>
40             <td>
41                 <a href="/edit_press/?id={{ foo.id }}">編輯</a>
42                 <a href="/delete_press/?id={{ foo.id }}">刪除</a>
43             </td>
44         </tr>
45     {% endfor %}
46     </tbody>
47 </table>
48 <button class="btn-success btn"><a href="/add_press/" style="text-decoration: none;color: blue;">添加出版社</a></button>
49 </body>
50 </html>
press_list.html文件

技術分享圖片

技術分享圖片

Django之ORM使用以及模板語言