首页 > Web开发 > 详细

访问浏览器后Django操作流程之URL、model、view、template

时间:2021-03-30 20:30:28      阅读:22      评论:0      收藏:0      [点我收藏+]

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/")

访问浏览器后Django操作流程之URL、model、view、template

原文:https://www.cnblogs.com/yhxy/p/14598419.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!