Django之ORM使用以及模板語言
阿新 • • 發佈:2018-09-28
跳轉 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,‘views.py中所寫的內容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})
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使用以及模板語言