膳绫擎的高低文处理器使得format_price函数在所有模板中可用:
{{ format_price(0.33) }}
1、WHERE子句感化于基表或视图,大年夜中选择知足前提的元组。
日记记录
handler = logging.FileHandler(‘flask.log’, encoding=’UTF-8′)
1、请求之前设置requestId并记录日记
每个URL请求之前,定义requestId并绑定到g
2、请求之后添加响应头与记录日记
每次返回数据中,带上响应头,包含API版本和本次请求的requestId,以及许可所有域跨域拜访API, 记录拜访日记
group by按照萌芽结不雅集中的某一列(或多列),进行分组,值相等的为一组
- @app.after_request
- def add_header(response):
- response.headers["X-SaintIC-Media-Type"] = "saintic.v1"
- response.headers["X-SaintIC-Request-Id"] = g.requestId
- response.headers["Access-Control-Allow-Origin"] = "*"
- logger.info(json.dumps({
- "AccessLog": {
- "status_code": response.status_code,
- "method": request.method,
- "ip": request.headers.get('X-Real-Ip', request.remote_addr),
- "url": request.url,
- "referer": request.headers.get('Referer'),
- "agent": request.headers.get("User-Agent"),
- "requestId": str(g.requestId),
- }
- }
- ))
- return response
basicConfig办法可以知足你在绝大年夜多半场景下的应用需求,然则basicConfig有一个很大年夜的缺点。调用basicConfig其实是给root logger添加了一个handler(FileHandler ),如许当你的法度榜样和其余应用了 logging的第三方模块一路工作时,会影响第三方模块的logger行动。这是由logger的持续特点决定的
- logging.basicConfig(level=logging.DEBUG,
- format='%(asctime)s %(levelname)s %(message)s',
- datefmt='%a, %d %b %Y %H:%M:%S',
- filename='logs/pro.log',
- filemode='w')
- logging.debug('dddddddddd')
MySQL字符编码
除了设置数据库的之外,因为dataset默认创建数据库和表的字符集不是utf8,所以须要本身设置,不然会中文乱码,所以须要修改表的字符集
推荐阅读
沙龙晃荡 | 去哪儿、陌陌、ThoughtWorks在主动化运维中的实践!10.28不见不散! 而Sapienz对象的工作方法是如许的。上班族会在日间进行正常的工作义务,并且申报他们发明的任何软件马脚。在>>>详细阅读
地址:http://www.17bianji.com/lsqh/38023.html
1/2 1

网友点评
精彩导读
科技快报
品牌展示