接口自动化测试平台开发03使用Flask蓝图(blueprint)

在使用logbook的时候,遇到一个问题,那就是日志的时间不对,原来是logbook默认采用的是世界标准世界utc,而我们的北京世界是比世界标准时间早8小时的。

如何解决?

import logbook
from app import hapi


class Log(object):
    handler = None

    def __init__(self, name='hapi', filename=hapi.config['LOG_NAME']): # Logger标识为默认app
        '''
        :param name: 业务名称
        :param filename: 文件名称
        '''
        self.handler = logbook.FileHandler(filename, encoding='utf-8')
        logbook.set_datetime_format("local") # 将日志时间设置为本地时间
        self.logger = logbook.Logger(name)
        self.handler.push_application()

    def info(self, *args, **kwargs):
        return self.logger.info(*args, **kwargs)

    def error(self, *args, **kwargs):
        return self.logger.error(*args, **kwargs)

    def warning(self, *args, **kwargs):
        return self.logger.warning(*args, **kwargs)

    def debug(self, *args, **kwargs):
        return self.logger.debug(*args, **kwargs)

 我们调用logbook.set_datetime_format("local"),这样就能把时间设置为本地时间了。接着来测试一下~

接下来讲如何使用蓝图。

蓝图的作用:分离前后端开发的代码,以不同的url前缀来隔离不同的功能,不仅可以使入口文件变得很干净,更重要实现了很好的模块化。

由于我们做前后端分离,所以后端杜绝任何与html有关的东西,比如我如果现在要做用户模块的话。我需要我的url路径统一以/user开始,后面再按照内容划分。

比如用户注册接口,打算这样命名:/user/register

前边user代表模块,后面代表内容,这样特别清晰明了

蓝图设计完了,那我们开始干吧!

首页我们创建controller文件夹,专门处理路由和方法映射,举个例子

这里我创建了auth(认证模块),又创建了user.py文件。

from flask import Blueprint
from flask import jsonify

auth = Blueprint("auth", __name__, url_prefix="/auth")

# 这里以auth.route注册的函数都会自带/auth,所以url是/auth/register
@auth.route("/register")
def register():
    return jsonify(dict(status=True, msg="注册成功"))

jsonify函数,函数的作用就是返回一个JSON类型的Response(一般用于把数据返回给前端)

然后我们去app中注册这个蓝图!app/__init__.py代码如下

from flask import Flask
from app.controller.auth.user import auth
from config import Config

hapi = Flask(__name__)
# 注册蓝图
hapi.register_blueprint(auth)
hapi.config.from_object(Config)

重启run.py服务!进入/auth/register页面,发现msg并不是 注册成功,出现了字符编码的问题。

 解决方法:在注册蓝图下面添加一行代码。指定JSON_AS_ASCII的参数设置为False,阻止jsonify将json内容转为ASCII进行返回。

hapi.config["JSON_AS_ASCII"] = False

再试一次:

完美解决~

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值