由于我们前后台系统没有分开,所以前台页面调用接口时,可以直接使用后台管理系统已经完成的接口,不过后台管理系统接口的访问加上了登录验证,所以需要将前台要用到的接口进行处理,让它们设置到白名单当中
一、添加日志访问的路由
打开main.py文件,将以下代码
# 过滤不用做任何操作的路由(即过滤不用进行判断是否登录和记录日志的url) if path_info in ['/favicon.ico', '/', '/api/verify/']: return
改成:
# 过滤不用做任何操作的路由(即过滤不用进行判断是否登录和记录日志的url) if path_info in ['/favicon.ico', '/', '/api/verify/'] or path_info.find('/upload/') > -1: return
二、过滤不必要进行验证的操作
对于前台获取公司介绍、联系我们、产品分类、产品列表和产品信息的接口,我们可以将它们添加到这里来,进行过滤。
找到下面代码
# 过滤不用进行登录权限判断的路由(登录与退出登录不用检查是否已经登录) url_list = ["/api/login/", "/api/logout/"] if path_info in url_list: pass
改成
# 过滤不用进行登录权限判断的路由(登录与退出登录不用检查是否已经登录) url_list = ["/api/login/", "/api/logout/", "/api/about/", "/api/contact_us/", "/api/product_class/"] if path_info in url_list or (request.method == 'GET' and path_info.find('/api/product/') > -1): pass
三、测试效果
因为我们使用的是RESTful风格的路由,获取产品信息、修改产品信息和删除产品信息路由url是一样的,只是通过get/put/delete来进行区分,所以我们在处理时,需要获取客户端的提交方式是GET还是PUT或DELETE,然后进行区分处理。
我们知道获取产品信息的接口路由是:@get('/api/product/
点击main.py运行debug,然后在浏览器上输入:http://127.0.0.1:81/api/about/ 就可以看到已经可以取到数据了。
四、修改index.html
打开index.html页面代码,将公司介绍那部分html代码删掉,替换成下面加上id标签的代码
<img id="about_img" width="600" height="150"> <br><br> <span id="about"></span>
在底部javascript脚本中添加下面ajax代码
//读取服务器记录 $.ajax({ url: "/api/about/", type: "GET", dataType: 'json', success: function (data) { $("#about_img").attr('src', data.data.front_cover_img); $("#about").text(data.data.content); } });
五、测试效果
在浏览器中输入http://127.0.0.1:81/index.html,就可以看到首页的内容是从我们的数据库中取出来的了。