orm删除数据
单个数据删除
In [2]: b1=Book.objects.get(id=1)
In [3]: b1.delete()
Out[3]: (1, {\'bookstore.Book\': 1})
In [4]: Book.objects.all()
Out[4]: <QuerySet [<Book: Django_清华大学出版社_1.00_75.00>, <Book: JQury_机械工业出版社_90.00_85.00>, <Book: Linux_机械工业出版社_80.00_65.00>, <Book: HTML5_清华大学出版社_1.00_105.00>]>
In [5]: for i in Book.objects.all():
...: print(i.id)
...:
2
3
4
5
批量数据删除
伪删除
删除实例
新增字段is_true
#is_true字段
class Book(models.Model):
title=models.CharField(\'书名\',max_length=50,unique=True,default=\'\')
pub=models.CharField(\'出版社\',default=\'\',max_length=100)
price=models.DecimalField(\'价格\',max_digits=7,decimal_places=2)
market_price=models.DecimalField(\'图书零售价\',max_digits=7,decimal_places=2,default=0.0)
is_active=models.BooleanField(\'是否活跃\',default=True)
def __str__(self):
return \'%s_%s_%s_%s\'%(self.title,self.pub,self.price,self.market_price)
数据库迁移
E:\django_video_study\mysite2>python makemigrations
python: can\'t open file \'makemigrations\': [Errno 2] No such file or directory
E:\django_video_study\mysite2>python manage.py makemigrations
Migrations for \'bookstore\':
bookstore\migrations\0005_book_is_active.py
- Add field is_active to book
E:\django_video_study\mysite2>python manage.py migrate
Operations to perform:
Apply all migrations: admin, auth, bookstore, contenttypes, sessions
Running migrations:
Applying bookstore.0005_book_is_active... OK
E:\django_video_study\mysite2>
views.py
def all_book(request):
#all_book=Book.objects.all()
all_book=Book.objects.filter(is_active=True)
return render(request,\'bookstore/all_book.html\',locals())
def delete_book(request):
#通过获取查询字符串 book_id 拿到book的id
#将其is_active 改成False
#302跳转至all_book
book_id=request.GET.get(\'book_id\')
if not book_id:
return HttpResponse(\'请求异常\')
try:
book=Book.objects.get(id=book_id,is_active=True)
except Exception as e:
print(\'---delete book get error %s\'%(e))
return HttpResponse(\'获取id错误\')
#将其is_active改为False
book.is_active=False
book.save()
#302跳转到all_book
return HttpResponseRedirect(\'/bookstore/all_book/\')
all_book.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>显示所有书籍</title>
</head>
<body>
<table border="1">
<tr>
<th>id</th>
<th>title</th>
<th>pu</th>
<th>price</th>
<th>market_price</th>
<th>op</th>
</tr>
{% for info in all_book %}
<tr>
<td>{{info.id}}</td>
<td>{{info.title}}</td>
<td>{{info.pub}}</td>
<td>{{info.price}}</td>
<td>{{info.market_price}}</td>
<td>
<a href="{% url \'update\' info.id %}">更新</a>
<a href="/bookstore/delete_book?book_id={{info.id}}">删除</a>
</td>
</tr>
{% endfor %}
</table>
</body>
</html>
urls.py
from django.urls import path
from . import views
urlpatterns=[
path(\'index\',views.index),
path(\'all_book/\',views.all_book,name=\'all_book\'),
path(\'update/<int:book_id>/\',views.update,name=\'update\'),
path(\'delete_book/\',views.delete_book)
]