对于HttpRequest对象这一知识点,在上篇完成的基础来进行说明。
1.HttpRequest对象(1)GET属性
创建test视图函数;
def test(request):
if request.method == 'GET':
print("method:",request.method)
print("get:",request.GET)
return render(request,'book/test.html')
else:
print("method:",request.method)
print("post:",request.POST)
print("path:",request.path)
return HttpResponse("ok")
创建test.html并且配置url;
Title
url(r"^test",test),
效果如下:
(2)POST属性
以添加图书为例,首先创建一个create.tml模板文件;
Title
定义create视图函数并配置url;
def create(request):
if request.method == 'GET':
# 渲染添加图书的表单页面
return render(request,'book/create.html')
else:
bookinfo = BookInfo()
bookinfo.bname = request.POST.get('bname')
bookinfo.bpage = request.POST.get("bpage")
bookinfo.bpub_date = request.POST.get('bpub_date')
bookinfo.save()
return HttpResponseRedirect("/book/index")
url(r"^create",create),
效果如下:
注意:这里要注释掉settings.py文件中的MIDDLEWARE的crsf内容;
# 'django.middleware.csrf.CsrfViewMiddleware',2.HttpResponse对象
以删除图书为例,首先创建一个delete视图;
from django.http import HttpResponseRedirect
def delete(request,bid):
# 1.通过 bid 来查找 Book
book = BookInfo.objects.get(id=bid)
# 2.删除
book.delete()
# 3.重定向,让浏览器访问/index
return HttpResponseRedirect("/book/index")
直接配置路由;
url(r"^delete/(d+)",delete),
在原本创建的index.html模板中添加如下代码:
图书信息
-
添加
{% for book in books%}
- {{book.bname}},{{book.bpage}}-- --{book.id}}">修改 {book.id}}">删除 {% endfor %}
效果如下:(删除后)



