0.效果展示
城市列表使用緩存的過程
1.后端代碼
# coding:utf-8from . import api
from flask import g, current_app, jsonify, request, session
from ihome.utils.response_code import RET
from ihome.models import Area, House, Facility, HouseImage, User, Order
from ihome import db, constants, redis_store
from ihome.utils.commons import login_required
from ihome.utils.image_storage import storage
from datetime import datetime
import json@api.route("/areas")
def get_area_info():"""獲取城區信息"""# 嘗試從redis中讀取數據try:resp_json = redis_store.get("area_info")except Exception as e:current_app.logger.error(e)else:if resp_json is not None:# redis有緩存數據current_app.logger.info("hit redis area_info")return resp_json, 200, {"Content-Type": "application/json"}# 查詢數據庫,讀取城區信息try:area_li = Area.query.all()except Exception as e:current_app.logger.error(e)return jsonify(errno=RET.DBERR, errmsg="數據庫異常")area_dict_li = []# 將對象轉換為字典for area in area_li:area_dict_li.append(area.to_dict())# 將數據轉換為json字符串resp_dict = dict(errno=RET.OK, errmsg="OK", data=area_dict_li)resp_json = json.dumps(resp_dict)# 將數據保存到redis中try:redis_store.setex("area_info", constants.AREA_INFO_REDIS_CACHE_EXPIRES, resp_json)except Exception as e:current_app.logger.error(e)return resp_json, 200, {"Content-Type": "application/json"}
2.前端代碼
注意此處使用art-template模板引擎渲染數據