Django之ORM使用以及模板语言

Posted wjs521

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django之ORM使用以及模板语言相关的知识,希望对你有一定的参考价值。

一、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使用以及模板语言的主要内容,如果未能解决你的问题,请参考以下文章

人生苦短,我用python-- Day19 django框架之URL路由系统视图应用模板应用django之orm应用

python学习点滴记录-Day18-django-orm

59 Django基础三件套 , 模板{{}}语言 , 程序连mysql Django项目app Django中ORM的使用

Django之ORM数据库增删改查

Django基础4----Template模板之模板变量

Django之自带ORM框架