通过get或者post请求方式将参数写入到数据库中,
在views.py文件下编写视图函数
def add(request):
# 新增图书
if request.method == 'GET':
return render(request,'book/add.html')
else:
# 从表单中获取相应参数
bookinfo=BookInfo()
bookinfo.bname=request.POST.get("bname")
bookinfo.bpub_date=request.POST.get("bpub_date")
bookinfo.bpage=request.POST.get("bpage")
# 保存信息
bookinfo.save()
return redirect("/book/index")
在urls.py添加相应路径
url(r"^add",add),
在相应的index.html文件下加入连接
添加
创建一个add.html文件在页面上填写添加的数据内容
删除图书逻辑: 数据通过渲染模板渲染到页面上, 通过获取图书的id值, 返回到删除函数执行软删除 ( 即把对应的图书的删除标记进行更改,并不是真正的把数据从数据库了删除 )
在index.html页面上做相应的修改,
Title
添加
-
{%for book in books%}
- {{book.bname}}---- 删除 {% endfor %}
视图函数, 通过返回的id值获取book对象,执行操作
# 删除图书
def delete(request,bid):
try:
# 1.通过bid来查找book
book = BookInfo.objects.get(id=bid)
# 2.删除
book.is_delete=1
book.save()
except Exception as e:
print("异常",e)
return HttpResponseRedirect("/book/index")
对应的urls.py也要进行修改
url(r"^delete/(d+)",delete),修改图书
逻辑: 通过get或post请求方式获取也面提交的表单信息 ,在通过相应的id值找到相应的book数据,通过update方法对数据进行修改
视图函数对应代码:
def edit(request):
if request.method == 'GET':
id=request.GET.get("id")
book=BookInfo.objects.get(id=id)
return render(request,"book/edit.html",{'book':book})
else:
# 获取表格请求传上去的值
id = request.POST.get("id")
bname = request.POST.get("bname")
bpage = request.POST.get("bpage")
bpub_date = datetime.strptime(request.POST.get('bpub_date'),'%Y年%m月%d日').strftime('%Y-%m-%d')
# 更改数据库的信息
BookInfo.objects.filter(id=id).update(bname=bname,bpage=bpage,bpub_date=bpub_date)
return HttpResponseRedirect('/book/index')
相应的分路由
url(r"^edit",edit),
对应的edit.html内容如下:
在index.html页面上创建对应的修改的标签,通过(?id=)的方式传递id值,
修改
注意:在提交表单时,要注释掉settings.py中的 MIDDLEWARE 的 crsf 内容
补充内容 — 错误视图Django框架有自带的默认视图应用于处理HTTP错误请求 如404视图,500视图
404错误:
在http响应过程中遇到404相应错误时,在Django中直接访问当前Django应用的服务器下一个错误的url地之后或默认显示一个404错误页面,
(1)对于默认404的视图,可以传递一个默认的变量request_path给模板,request_path表示导致错误的url地址信息
(2)若是在项目下settings中的DEBUG变量设置为True,那么将不会调用404视图,而是显示urlconf并带有已协调试信息,因此,需要把True变为False,还需要改变ALLOWED_HOSTS为任何url
DEBUG = True ALLOWED_HOSTS = ['*']
defaults.page_not_found(request,template_name='404.html')
注意:通常在调试代码时,我们都不需要修改 DEBUG、ALLOWED_HOSTS 的值,但若不想让实际用户查看到 开发时的调试信息,我们一般会在实际部署及发布项目时,将 DEBUG、ALLOWED_HOSTS 项修改为上述值
也可以在templates中创建一个自定义的404页面,但该文件的命名必须为404.html,且必须是在templates目录下直接创建,500错误视图同上



