記錄日誌,在任何專案中,都是很重要的。在flask專案中,即有flask提供的logger可以用來記錄log,也可以通過直接使用python的logging模組自定義logger來記錄。其中,日誌資訊包含了幾個等級,如下,本次測試專案中使用了兩個等級的日誌資訊
級別說明
debug
除錯模式,列印最詳細的日誌資訊
info
按照預期工作的日誌
warning
服務警告日誌資訊
error
服務錯誤日誌資訊
critical
嚴重錯誤,程式 已不能繼續執行
manager.py
│setting.py
│__init__.py
│├─cms
│ aa.py
│ __init__.py
│├─logs
error.log
info.log
)
if __name__ ==
'__main__'
:"開始你的bug之旅"
)"0.0.0.0"
)
from flask import flask
from
.setting import config
def():
# 匯入配置
"development"])
config[
"development"
]# 匯入路由
import logging
import os
# 專案根目錄
basedir = os.path.abspath(os.path.dirname(__file__)
)class
infofilter
(logging.filter)
:def
filter
(self, record)
:"""only use info
篩選, 只需要 info 級別的log
:param record:
:return:
"""if logging.info <= record.levelno < logging.error:
# 已經是info級別了
# 然後利用父類, 返回 1
return
super()
.filter
(record)
else
:return
0class
config
(object):
debug =
false
testing =
false
db_server =
"localhost"
db_port =
3306
db_user =
"root"
db_pwd =
"123456"
db_base =
"" database_uri =
# 日誌配置資訊
log_path = os.path.join(basedir,
'logs'
) log_path_error = os.path.join(log_path,
'error.log'
) log_path_info = os.path.join(log_path,
'info.log'
) log_file_max_bytes =
100*
1024
*1024
# 輪轉數量是 10 個
log_file_backup_count =
10 @staticmethod
def:
pass
class
developmentapiconfig
(config)
: debug =
true
db_server =
"localhost"
db_port =
3306
db_user =
"username"
db_pwd =
"password"
db_base =
"" database_uri =
@classmethod
def:
# email errors to the administrators
import logging
from logging.handlers import rotatingfilehandler
# formatter
formatter = logging.formatter(
'%(asctime)s %(levelname)s %(process)d %(thread)d '
'%(pathname)s %(lineno)s %(message)s'
)# filehandler info
file_handler_info = rotatingfilehandler(filename=cls.log_path_info)
file_handler_info.setformatter(formatter)
file_handler_info.setlevel(logging.info)
info_filter = infofilter(
) file_handler_info.addfilter(info_filter)
# filehandler error
file_handler_error = rotatingfilehandler(filename=cls.log_path_error)
file_handler_error.setformatter(formatter)
file_handler_error.setlevel(logging.error)
@bp.route(
"/info/"
, methods=
["get"])
defindex()
:"database_uri"
] session = databasesession(db_config)
sql =
"""select * from `order`.`sp_order` where `order_id` = '1916' limit 0, 1000"""
res = session.query_dict_fetchall(sql)
if res:
return jsonify(decimal_err(res)
)return
"訂單號不存在"
專案中使用ibatis方法
通過daomanagerbuilder載入dao.xml檔案獲取daomanager物件 dao.xml 配置如下 sql map config 配置如下 匯入database.properties檔案 設定資料庫連線屬性 匯入每乙個資料庫實體檔案 檔案指定實體類和資料表對應關係 account.x...
在專案中使用ExtJS
今天extjs官網發布了extjs最新正式版4.2.1。extjs為開發者在開發富客戶的b s應用中提供豐富的ui元件,具有統一的主題,便於快速開發,提高效率。但顯然它並不適合互聯 的開發。builds 壓縮後的extjs 體積更小,更快 docs 開發文件 examples 官方演示示例 loca...
在專案中使用springmvc
springmvc是spring框架的乙個模組,springmvc和spring無需通過中間整個層進行整合,它是乙個基於mvc的web框架。springmvc是基於方法開發的,struts2是基於類開發的。springmvc將url和controller方法對映,對映成功後springmvc生成乙個...