>>> b1 = Book.objects.get(id=1)
>>> b1
<Book: 书名:python_出版社:清华大学出版社_价格:20.00_市场价:25.00>
>>> b1.price = 22
>>> b1.save()
Microsoft Windows [版本 10.0.19042.928]
(c) Microsoft Corporation。保留所有权利。C:\Users\520>cd..C:\Users>cd..C:\>program files\mysql\mysql server 8.0\bin
'program' 不是内部或外部命令,也不是可运行的程序
或批处理文件。C:\>cd program files\mysql\mysql server 8.0\binC:\Program Files\MySQL\MySQL Server 8.0\bin>mysql -uroot -p
Enter password: ****
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 49
Server version: 8.0.25 MySQL Community Server - GPLCopyright (c) 2000, 2021, Oracle and/or its affiliates.Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql> use mysite;           # mysite是project名称
Database changed
mysql> show tables;
+----------------------------+
| Tables_in_mysite           |
+----------------------------+
| auth_group                 |
| auth_group_permissions     |
| auth_permission            |
| auth_user                  |
| auth_user_groups           |
| auth_user_user_permissions |
| author                     |
| book                       |
| django_admin_log           |
| django_content_type        |
| django_migrations          |
| django_session             |
+----------------------------+
12 rows in set (0.05 sec)mysql> desc book-> ^C
mysql> desc book;
+--------------+--------------+------+-----+---------+----------------+
| Field        | Type         | Null | Key | Default | Extra          |
+--------------+--------------+------+-----+---------+----------------+
| id           | bigint       | NO   | PRI | NULL    | auto_increment |
| title        | varchar(50)  | NO   | UNI | NULL    |                |
| price        | decimal(7,2) | NO   |     | NULL    |                |
| market_price | decimal(7,2) | NO   |     | NULL    |                |
| pub          | varchar(100) | NO   |     | NULL    |                |
+--------------+--------------+------+-----+---------+----------------+
5 rows in set (0.03 sec)mysql> select * from book;
+----+--------+-------+--------------+----------------+
| id | title  | price | market_price | pub            |
+----+--------+-------+--------------+----------------+
|  1 | python | 22.00 |        25.00 | 清华大学出版社 |
|  2 | django | 70.00 |        75.00 | 清华大学出版社 |
|  3 | jquery | 90.00 |        85.00 | 机械工业出版社 |
|  4 | linux  | 80.00 |        65.00 | 机械工业出版社 |
|  5 | html5  | 90.00 |       105.00 | 清华大学出版社 |
+----+--------+-------+--------------+----------------+
5 rows in set (0.01 sec)mysql>

>>> books = Book.objects.filter(pub="清华大学出版社")
>>> books.update(price=1)
3
>>> bs = Book.objects.filter(pub="清华大学出版社")
>>> for book in bs:
...     print(book.price)
...
1.00
1.00
1.00
>>>
mysql> select * from book;
+----+--------+-------+--------------+----------------+
| id | title  | price | market_price | pub            |
+----+--------+-------+--------------+----------------+
|  1 | python |  1.00 |        25.00 | 清华大学出版社 |
|  2 | django |  1.00 |        75.00 | 清华大学出版社 |
|  3 | jquery | 90.00 |        85.00 | 机械工业出版社 |
|  4 | linux  | 80.00 |        65.00 | 机械工业出版社 |
|  5 | html5  |  1.00 |       105.00 | 清华大学出版社 |
+----+--------+-------+--------------+----------------+
5 rows in set (0.00 sec)mysql>




总路由

from django.contrib import admin
from django.urls import path, includeurlpatterns = [path('admin/', admin.site.urls),path("bookstore/", include("myapp.urls"))
]

子路由

from django.urls import path
from . import viewsurlpatterns = [path("all_book", views.all_book),path("update_book/<int:book_id>", views.update_book)
]

myapp.views.py

from django.shortcuts import render
from django.http import HttpResponse, HttpResponseRedirect
from .models import Book# Create your views here.
def all_book(request):all_book = Book.objects.all()return render(request, "myapp/abook.html", locals())def update_book(request, book_id):# 查try:book = Book.objects.get(id=book_id)except Exception as e:print("update book error is {}".format(e))return HttpResponse("book {} does not exist".format(book_id))if request.method == "GET":return render(request, "myapp/update_book.html", locals())elif request.method == "POST":price = request.POST['price']market_price = request.POST['market_price']# 改book.price = pricebook.market_price = market_price# 存book.save()return HttpResponseRedirect("/bookstore/all_book")  # 注意:相对地址

abook.html

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>查看所有书籍</title>
</head>
<body>
<table border="1"><tr><th>id</th><th>title</th><th>pub</th><th>price</th><th>market_price</th><th>op</th></tr><tr>{% for book in all_book %}<tr><td>{{ book.id }}</td><td>{{ book.title }}</td><td>{{ book.pub }}</td><td>{{ book.price }}</td><td>{{ book.market_price }}</td><td><a href="/bookstore/update_book/{{ book.id }}">更新</a><a href="">删除</a></td></tr>{% endfor %}</tr>
</table></body>
</html>

update_book.html

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>更新书籍</title>
</head>
<body><form action="/bookstore/update_book/{{ book_id }}" method="post">{% csrf_token %}<!--这里提交到的URL要注意,使用相对地址,最前面的斜杠不要丢--><p>title<input type="text" value="{{ book.title }}" disabled="disabled"></p>  <!--没有给name,点击提交时不会提交这个值。disabled属性,值不可修改 --><p>pub<input type="text" value="{{ book.pub }}" disabled="disabled"></p><p>price<input type="text" name="price" value="{{ book.price }}"></p><p>market_price<input type="text" name="market_price" value="{{ book.market_price }}"></p><p><input type="submit" value="更新啦"></p>
</form></body>
</html>




Django:ORM基本操作-CRUD,管理器对象objects,----->查询3(单条更新,批量更新)相关推荐

  1. 【Django入门】——模型管理器对象、模型管理器类和模型类

    文章目录 一.模型管理器对象 1. 自定义模型管理器对象 2. 自定义模型管理器类 3. 自定义模型管理器类应用 3.1 重写框架的方法 3.2 封装自定义方法 4. 模型管理器对象的`model`属 ...

  2. Django:ORM基本操作-CRUD,管理器对象objects,----->聚合查询、原生数据库操作

    Microsoft Windows [版本 10.0.19042.928] (c) Microsoft Corporation.保留所有权利.C:\Users\520>cd..C:\Users& ...

  3. Django:ORM基本操作-CRUD,管理器对象objects,----->查询1(all,values,values_list,order_by)

    Microsoft Windows [版本 10.0.19042.928] (c) Microsoft Corporation.保留所有权利.C:\Users\520>cd mysiteC:\U ...

  4. Django:ORM基本操作-CRUD,管理器对象objects,----->删除:删除单个数据,删除批量数据

    Microsoft Windows [版本 10.0.19042.928] (c) Microsoft Corporation.保留所有权利.C:\Users\520>cd mysiteC:\U ...

  5. Django:ORM基本操作-CRUD,管理器对象objects,----->查询2(filter,exclude,get,查询谓词)

    https://docs.djangoproject.com/zh-hans/3.2/ref/models/expressions/ Microsoft Windows [版本 10.0.19042. ...

  6. Django:ORM基本操作-CRUD,管理器对象objects,----->新增

    Microsoft Windows [版本 10.0.19042.928] (c) Microsoft Corporation.保留所有权利.C:\Users\520>cd..C:\Users& ...

  7. manager objects is not callable(管理器对象不可调用)

    背景:对数据库进行序列化操作,在从浏览器调用视图函数时,会报 manager objects is not callable(翻译的内容为:管理器对象不可调用) 框架:django和Django RE ...

  8. Django中--自定义模型管理器类

    BookInfo.objects.all()->objects是一个什么东西呢? 答:objects是models.Manger类的一个对象,是Django帮我自动生成的管理器对象,通过这个管理 ...

  9. django orm基本操作一

    一.Django–ORM表设计格式(个人) 1.一对一建立外键 不同于django如需扩展原user表,将外键建在副表上.我更喜欢将外键建在主表上 外键名称 = models.OneToOneFiel ...

最新文章

  1. 干货 | 详解对象检测模型中的Anchors
  2. Microbiome:应用多维宏组学方法协同揭示复杂细菌群落对目标底物代谢的菌间相互关系(一作解读)...
  3. 用看门狗定时器做计时器,计算程序耗时,超声波测距,FL2440
  4. springboot配置对jsp页面的解析支持
  5. vue项目中阻止浏览器返回上一页
  6. 计算机无法正常更新,无法完成更新正在撤销更改请不要关闭你的计算机如何修复...
  7. java web认证考试_用Java实现Web服务器HTTP协议
  8. 小程序采用mvvm设计模式_滴滴重磅开源跨平台统一 MVVM 框架 Chameleon
  9. (转)SpringMVC学习(二)——SpringMVC架构及组件
  10. Elasticsearch--高级-映射_修改映射 数据迁移---全文检索引擎ElasticSearch工作笔记019
  11. 07网络发展趋势:风险和机遇并存
  12. Bootstrap可视化布局
  13. 海洋cms(海洋视频内容管理系统) v12.5 bulid220618
  14. H5播放B站源的flv视频
  15. Mac恢复系统更新命令
  16. SAS学习(8)——自定义proc means的数据导出
  17. php html注释多行,css多行注释怎么写
  18. 全靠这份Java知识点PDF大全,先睹为快
  19. Kafka多租户(配额)管理
  20. 前端下载其他服务器上的跨域图片资源问题

热门文章

  1. CentOS 下重装 jdk
  2. P1217 [USACO1.5]回文质数 Prime Palindromes(技巧+暴力枚举+线性筛)
  3. 《DSP using MATLAB》示例Example4.6
  4. 百度地图——判断用户是否在配送范围内解决方案
  5. CSS3中的pointer-events
  6. 老李分享:接电话扩展之uiautomator 1
  7. oracle中的数据读取与查找
  8. Struts+iBatis+Spring+mysql整合开发
  9. html5,用或不用,它都在那里
  10. BCD码和十六进制的区别【转】