方式一,通过ajax来实现删除功能
发起请求时,需要传送图书id
首先完成视图函数的功能
接收数据
两种方式
1 直接获取json字符串
2,使用request对象的get_json()方法
注意
如果是前端发ajax
需要和他约定好数据结构
本例中,和前端约好的发送数据的格式为:
{'book_id':图书id}
使用ajax发一个post请求
flask是可以接收post请求的
拿到图书id后
就需要从数据库中删除
删除的流程
- 找到图书行对易用
- session删除 delete(对象)
- session提交
删除内容后需要跳转
flask模块中的跳转函数
redirect(跳转的页面)
flask模块中的url_for
是反向解析
url_for(视图名称)
返回视图函数所对应的路由名称
至此为止删除的所有操作了
接收数据
删除数据
页面跳转(用到了跳转的函数,和反向解析的函数)
后端完成后,就需要前端处理了
如果是前后端分离的情况
前端的是我们不用管的
只需要处理好后端就可以了
前端开始
首先即然是要删除图书
所以需要在删除的按钮上做一个事件
做相关的准备
写jquery需要导入静态文件
导入的位置
flask的模板默认为启动py程序同一级的templates目录
静态目录默认是static目录
因此我们可以直接在static目录中
把jquery添加进去
前端导入jquery
导入工作完成
下一步,准备jquery代码
可以给链接添加事件
当前的情况,给a标签添加了一个点击事件
点击会触发 deleteBook函数
函数体内要做的事情
1,获取图书的id
2,发送ajax请求
解决图书id的数据
因为前端没有
我们就自己把需要的内容塞在标签中
自定义了a标签的book-id后
就可在jquery中获取它的值了
发送ajax的简写形式:
$.请求方式(网址,参数字典,回调函数)
比如要发送post请求
$.post(url,{},function(da){})
由于后端是等待接收一个json
所以前端 要发json
复习前端json与对象的转换
前端发请求要把数据转成json
方式上面回顾了
后端回响应也要回json
可以用通用的
json.dumps(字典)方式来回复json
也可以用
flask.jsonify(键=值,键2=值2)
来回复一个json
关于ajax的dataType
没有dataType时
如果有dataType
同时声明它是一个json
就可以省掉转换的操作步骤