1 首次访问浏览器
我们请求URL:http://127.0.0.1:8060/book/add/
因为首次请求不提交任何数据所以请求方式:get
首先总路有总找到相应的总路由,如果找到include(),在根据总路由找到子路由(url分发: path('book/add/', views.addBook))
然后到试图:
视图函数 def addBook:
//首次访问不提交数所以是get 请求
if request.method=="GET":
//我们需要从数据库里获取publish 和 AUthor的数据信息,返回一个queryset对象publish_list 和author_list
publish_list=Publish.objects.all()
author_list=Author.objects.all()
//我们通过在"addbook.html" 中请求render 来渲染所获取到的对象
//publish_list 和author_list,数据对应的
//{% for publish in publish_list %}和{% for author in author_list %}
return render(request,"addbook.html",{"publish_list":publish_list,"author_list":author_list})
//当我们提交数据时post 请求,所以走
else语句:
//一下语句时我们同过request。post.get 获取对应的model中的类模型数据返回一个个对象
title = request.POST.get("title")
price = request.POST.get("price")
pub_date = request.POST.get("pub_date")
publish_id = request.POST.get("publish")
authors_id = request.POST.getlist("authors")
//添加的提交的数据,返回一个book 对象
book=Book.objects.create(title=title, price=price, pub_date=pub_date, publisher_id=publish_id)
//在通过这个对象去和字段把对应的id放入到关联的表中
book.authors.add(*authors_id)
//点击体提交时重定向页面到另页面中
return redirect("/queryBook/")
第二步查询:
首先总路有总找到相应的总路由,如果找到include(),在根据总路由找到子路由(url分发: path('book/add/', views.addBook))
然后到试图:
视图函数 def quetyBook:
//要查数据,就是获取数据。返回一个对象
book_list=Book.objects.all()
//我们通过在"addbook.html" 中请求render 来渲染所获取到的对象
//对应的addbook.html里的代码{% for book in book_list %}
return render(request,"queryBook.html",{"book_list":book_list,})
第3步删除:
首先总路有总找到相应的总路由,如果找到include(),在根据总路由找到子路由(url分发: path('book/add/', views.deleteBook)) def deleteBook(request,pk):
//选择我们要删除的数据条件为(id=pk)
Book.objects.filter(id=pk).delete()
//点击体提交时重定向页面到另页面中
return redirect("/queryBook/")
第四步编辑:
首先总路有总找到相应的总路由,如果找到include(),在根据总路由找到子路由(url分发: path('book/add/', views.edicBook))
def edictBook(request,pk):
//首次访问编辑页面无数据提交 所以时get 请求
if request.method == "GET":
//选择我们要编辑的第一个模型类数据数据条件为(id=pk),返回一个对象
book_obj = Book.objects.filter(id=pk).first()
//我们通过在"addbook.html" 中请求render 来渲染所获取到的对象
//对应的addbook.html里的代码 value="{{ book_obj.price }}"
//一下语句时我们同过request。post.get 获取对应的model中的类模型数据返回一个个对象
title = request.POST.get("title")
price = request.POST.get("price")
pub_date = request.POST.get("pub_date")
publish_id = request.POST.get("publish")
authors_id = request.POST.getlist("authors")
book = Book.objects.filter(id=pk)
//把要更新的数据把她返回到编辑表中
book.update(title=title, price=price, pub_date=pub_date, publisher_id=publish_id)
book.first().authors.set(authors_id)
//点击体提交时重定向页面到另页面中
return redirect("/queryBook/")