Commit 46e098ec by dong

fix20221130

parent 87798a6e
...@@ -390,8 +390,8 @@ def batch_export_project5(): ...@@ -390,8 +390,8 @@ def batch_export_project5():
req_dic = request.get_json() req_dic = request.get_json()
select_id_list = req_dic["select_id_list"] select_id_list = req_dic["select_id_list"]
path = './apps/statics/project_file/' path = './apps/statics/project_file/'
# pro_path = 'http://39.100.39.50:8008/aaa_statics/project_file/' # 项目路径 pro_path = 'http://39.100.39.50:8008/aaa_statics/project_file/' # 项目路径
pro_path = 'http://192.168.1.4:5000/statics/project_file/' # 项目路径 # pro_path = 'http://192.168.1.4:5000/statics/project_file/' # 项目路径
if not select_id_list: if not select_id_list:
return jsonify(code=RET.PARAMERR, msg="参数不能为空!") return jsonify(code=RET.PARAMERR, msg="参数不能为空!")
target_data_list = [] target_data_list = []
...@@ -1377,8 +1377,8 @@ def download_jc_data(): ...@@ -1377,8 +1377,8 @@ def download_jc_data():
req_dic = request.get_json() req_dic = request.get_json()
year = req_dic["year"] year = req_dic["year"]
path = './apps/statics/project_file/' path = './apps/statics/project_file/'
# pro_path = 'http://39.100.39.50:8008/aaa_statics/project_file/' # 项目路径 pro_path = 'http://39.100.39.50:8008/aaa_statics/project_file/' # 项目路径
pro_path = 'http://192.168.1.4:5000/statics/project_file/' # 项目路径 # pro_path = 'http://192.168.1.4:5000/statics/project_file/' # 项目路径
if not year: if not year:
return jsonify(code=RET.PARAMERR, msg="参数不能为空!") return jsonify(code=RET.PARAMERR, msg="参数不能为空!")
target_data_list = [] target_data_list = []
...@@ -1669,8 +1669,8 @@ def download_money_arrive(): ...@@ -1669,8 +1669,8 @@ def download_money_arrive():
req_dic = request.get_json() req_dic = request.get_json()
data_time = req_dic["data_time"] data_time = req_dic["data_time"]
path = './apps/statics/project_file/' path = './apps/statics/project_file/'
# pro_path = 'http://39.100.39.50:8008/aaa_statics/project_file/' # 项目路径 pro_path = 'http://39.100.39.50:8008/aaa_statics/project_file/' # 项目路径
pro_path = 'http://192.168.1.4:5000/statics/project_file/' # 项目路径 # pro_path = 'http://192.168.1.4:5000/statics/project_file/' # 项目路径
if not data_time: if not data_time:
return jsonify(code=RET.PARAMERR, msg="参数不能为空!") return jsonify(code=RET.PARAMERR, msg="参数不能为空!")
target_data_list = [] target_data_list = []
......
...@@ -32,6 +32,7 @@ def get_data1(district_li, current_year): ...@@ -32,6 +32,7 @@ def get_data1(district_li, current_year):
try: try:
for district in district_li: for district in district_li:
project_obj_list = ProjectManagement.query.filter( project_obj_list = ProjectManagement.query.filter(
ProjectManagement.is_delete == 0,
ProjectManagement.sign_time.like('%{}%'.format(str(current_year))), ProjectManagement.sign_time.like('%{}%'.format(str(current_year))),
ProjectManagement.district.like('%{}%'.format(str(district))) if district != '全市' else text('') ProjectManagement.district.like('%{}%'.format(str(district))) if district != '全市' else text('')
).all() ).all()
...@@ -69,11 +70,13 @@ def get_data2(district_li, current_year): ...@@ -69,11 +70,13 @@ def get_data2(district_li, current_year):
for district in district_li: for district in district_li:
# 签约项目个数 # 签约项目个数
sign_num = ProjectManagement.query.filter( sign_num = ProjectManagement.query.filter(
ProjectManagement.is_delete == 0,
ProjectManagement.sign_time.like('%{}%'.format(str(current_year))), ProjectManagement.sign_time.like('%{}%'.format(str(current_year))),
ProjectManagement.district.like('%{}%'.format(str(district))) if district != '全市' else text('') ProjectManagement.district.like('%{}%'.format(str(district))) if district != '全市' else text('')
).count() ).count()
# 年度目标 # 年度目标
start_num = ProjectManagement.query.filter( start_num = ProjectManagement.query.filter(
ProjectManagement.is_delete == 0,
ProjectManagement.start_time.like('%{}%'.format(str(current_year))), ProjectManagement.start_time.like('%{}%'.format(str(current_year))),
ProjectManagement.district.like('%{}%'.format(str(district))) if district != '全市' else text('') ProjectManagement.district.like('%{}%'.format(str(district))) if district != '全市' else text('')
).count() ).count()
...@@ -97,6 +100,7 @@ def get_data3(district_li, current_year): ...@@ -97,6 +100,7 @@ def get_data3(district_li, current_year):
try: try:
for district in district_li: for district in district_li:
project_obj_list = ProjectManagement.query.filter( project_obj_list = ProjectManagement.query.filter(
ProjectManagement.is_delete == 0,
ProjectManagement.start_time.like('%{}%'.format(str(current_year))), ProjectManagement.start_time.like('%{}%'.format(str(current_year))),
ProjectManagement.district.like('%{}%'.format(str(district))) if district != '全市' else text('') ProjectManagement.district.like('%{}%'.format(str(district))) if district != '全市' else text('')
).all() ).all()
...@@ -169,6 +173,7 @@ def get_data5(district_li, current_year): ...@@ -169,6 +173,7 @@ def get_data5(district_li, current_year):
try: try:
for district in district_li: for district in district_li:
project_obj_list = ProjectManagement.query.filter( project_obj_list = ProjectManagement.query.filter(
ProjectManagement.is_delete == 0,
ProjectManagement.is_fixed_investment == '否', ProjectManagement.is_fixed_investment == '否',
ProjectManagement.sign_time.like('%{}%'.format(str(current_year))), ProjectManagement.sign_time.like('%{}%'.format(str(current_year))),
ProjectManagement.district.like('%{}%'.format(str(district))) if district != '全市' else text('') ProjectManagement.district.like('%{}%'.format(str(district))) if district != '全市' else text('')
...@@ -382,13 +387,9 @@ def export_jc_data(): ...@@ -382,13 +387,9 @@ def export_jc_data():
req_dic = request.get_json() req_dic = request.get_json()
flag = req_dic['flag'] # 1县(市、区)、开发区指标,2开发区(示范区)指标 flag = req_dic['flag'] # 1县(市、区)、开发区指标,2开发区(示范区)指标
data_time = req_dic['data_time'] data_time = req_dic['data_time']
# year = req_dic['year']
current_year = datetime.now().year
path = './apps/statics/project_file/' path = './apps/statics/project_file/'
# pro_path = 'http://39.100.39.50:8008/aaa_statics/project_file/' # 项目路径 pro_path = 'http://39.100.39.50:8008/aaa_statics/project_file/' # 项目路径
pro_path = 'http://192.168.1.4:5000/statics/project_file/' # 项目路径 # pro_path = 'http://192.168.1.4:5000/statics/project_file/' # 项目路径
if flag == 1: if flag == 1:
res = export_jc_data1(data_time, path, pro_path) res = export_jc_data1(data_time, path, pro_path)
if res == 'error': if res == 'error':
...@@ -419,26 +420,22 @@ def export_jc_data1(data_time, path, pro_path): ...@@ -419,26 +420,22 @@ def export_jc_data1(data_time, path, pro_path):
target_data_list = [] target_data_list = []
try: try:
for district in district_li: for district in district_li:
project_obj = ProjectManagement.query.filter(
ProjectManagement.sign_time.like('%{}%'.format(str(current_year1))),
ProjectManagement.sign_time.like('%{}%'.format(str(current_year2))),
ProjectManagement.is_delete == 0,
ProjectManagement.district.like('%{}%'.format(str(district))) if district != '全市' else text('')
)
data_list = [] data_list = []
# 县(市、区)、开发区 # 县(市、区)、开发区
data_list.append(district) data_list.append(district)
# 签约个数 # 签约个数
sign_num = ProjectManagement.query.filter( sign_num = project_obj.count()
ProjectManagement.sign_time.like('%{}%'.format(str(current_year1))),
ProjectManagement.sign_time.like('%{}%'.format(str(current_year2))),
ProjectManagement.district.like('%{}%'.format(str(district))) if district != '全市' else text('')
).count()
data_list.append(sign_num) data_list.append(sign_num)
# 签约金额(亿元) # 签约金额(亿元)
project_obj_list = ProjectManagement.query.filter( project_obj_list = project_obj.all()
ProjectManagement.sign_time.like('%{}%'.format(str(current_year1))),
ProjectManagement.sign_time.like('%{}%'.format(str(current_year2))),
ProjectManagement.district.like('%{}%'.format(str(district))) if district != '全市' else text('')
).all()
if not project_obj_list: if not project_obj_list:
sign_money = 0 sign_money = 0
else: else:
...@@ -469,7 +466,7 @@ def export_jc_data1(data_time, path, pro_path): ...@@ -469,7 +466,7 @@ def export_jc_data1(data_time, path, pro_path):
start_num = ProjectManagement.query.filter( start_num = ProjectManagement.query.filter(
ProjectManagement.start_time.like('%{}%'.format(str(current_year1))), ProjectManagement.start_time.like('%{}%'.format(str(current_year1))),
ProjectManagement.sign_time.like('%{}%'.format(str(current_year2))), ProjectManagement.sign_time.like('%{}%'.format(str(current_year2))),
ProjectManagement.is_delete == 0,
ProjectManagement.district.like('%{}%'.format(str(district))) if district != '全市' else text('') ProjectManagement.district.like('%{}%'.format(str(district))) if district != '全市' else text('')
).count() ).count()
data_list.append(start_num) data_list.append(start_num)
...@@ -489,7 +486,7 @@ def export_jc_data1(data_time, path, pro_path): ...@@ -489,7 +486,7 @@ def export_jc_data1(data_time, path, pro_path):
project_obj_list = ProjectManagement.query.filter( project_obj_list = ProjectManagement.query.filter(
ProjectManagement.start_time.like('%{}%'.format(str(current_year1))), ProjectManagement.start_time.like('%{}%'.format(str(current_year1))),
ProjectManagement.sign_time.like('%{}%'.format(str(current_year2))), ProjectManagement.sign_time.like('%{}%'.format(str(current_year2))),
ProjectManagement.is_delete == 0,
ProjectManagement.district.like('%{}%'.format(str(district))) if district != '全市' else text('') ProjectManagement.district.like('%{}%'.format(str(district))) if district != '全市' else text('')
).all() ).all()
if not project_obj_list: if not project_obj_list:
...@@ -561,7 +558,7 @@ def export_jc_data1(data_time, path, pro_path): ...@@ -561,7 +558,7 @@ def export_jc_data1(data_time, path, pro_path):
ProjectManagement.is_fixed_investment == '否', ProjectManagement.is_fixed_investment == '否',
ProjectManagement.sign_time.like('%{}%'.format(str(current_year1))), ProjectManagement.sign_time.like('%{}%'.format(str(current_year1))),
ProjectManagement.sign_time.like('%{}%'.format(str(current_year2))), ProjectManagement.sign_time.like('%{}%'.format(str(current_year2))),
ProjectManagement.is_delete == 0,
ProjectManagement.district.like('%{}%'.format(str(district))) if district != '全市' else text('') ProjectManagement.district.like('%{}%'.format(str(district))) if district != '全市' else text('')
).all() ).all()
if not project_obj_list: if not project_obj_list:
...@@ -637,6 +634,7 @@ def export_jc_data1(data_time, path, pro_path): ...@@ -637,6 +634,7 @@ def export_jc_data1(data_time, path, pro_path):
current_app.logger.error(e) current_app.logger.error(e)
return 'error' return 'error'
# 开发区指标完成表导出 # 开发区指标完成表导出
def export_jc_data2(data_time, path, pro_path): def export_jc_data2(data_time, path, pro_path):
district_li = ["晋城经济技术开发区(一区四园)", "高平经济技术开发区", district_li = ["晋城经济技术开发区(一区四园)", "高平经济技术开发区",
...@@ -657,7 +655,8 @@ def export_jc_data2(data_time, path, pro_path): ...@@ -657,7 +655,8 @@ def export_jc_data2(data_time, path, pro_path):
project_obj = ProjectManagement.query.filter( project_obj = ProjectManagement.query.filter(
ProjectManagement.sign_time.like('%{}%'.format(str(current_year1))), ProjectManagement.sign_time.like('%{}%'.format(str(current_year1))),
ProjectManagement.sign_time.like('%{}%'.format(str(current_year2))), ProjectManagement.sign_time.like('%{}%'.format(str(current_year2))),
ProjectManagement.district.like('%{}%'.format(str(district))) ProjectManagement.district.like('%{}%'.format(str(district))),
ProjectManagement.is_delete == 0
) )
# 1县(市、区)、开发区 # 1县(市、区)、开发区
data_list.append(district) data_list.append(district)
...@@ -685,7 +684,7 @@ def export_jc_data2(data_time, path, pro_path): ...@@ -685,7 +684,7 @@ def export_jc_data2(data_time, path, pro_path):
project_obj1 = ProjectManagement.query.filter( project_obj1 = ProjectManagement.query.filter(
ProjectManagement.start_time.like('%{}%'.format(str(current_year1))), ProjectManagement.start_time.like('%{}%'.format(str(current_year1))),
ProjectManagement.start_time.like('%{}%'.format(str(current_year2))), ProjectManagement.start_time.like('%{}%'.format(str(current_year2))),
ProjectManagement.is_delete == 0,
ProjectManagement.district.like('%{}%'.format(str(district))) ProjectManagement.district.like('%{}%'.format(str(district)))
) )
project_obj_list1 = project_obj1.all() project_obj_list1 = project_obj1.all()
...@@ -767,20 +766,20 @@ def project_graph(): ...@@ -767,20 +766,20 @@ def project_graph():
req_dic = request.get_json() req_dic = request.get_json()
district = req_dic['district'] district = req_dic['district']
flag = req_dic['flag'] # 1项目来源区域分布,2项目投资额区间分布,3项目产业分布,4项目行业类型分布 flag = req_dic['flag'] # 1项目来源区域分布,2项目投资额区间分布,3项目产业分布,4项目行业类型分布
project_source = req_dic['project_source'] # 用于1项目来源区域分布
industry_name = req_dic['industry_name'] # 用于4项目行业类型分布
current_year = datetime.now().year current_year = datetime.now().year
try: try:
project_obj = ProjectManagement.query.filter( project_obj = ProjectManagement.query.filter(
ProjectManagement.district == district if district else text(''), ProjectManagement.district == district if district else text(''),
ProjectManagement.sign_time.like('%{}%'.format(str(current_year))) ProjectManagement.sign_time.like('%{}%'.format(str(current_year))),
ProjectManagement.is_delete == 0
) )
if not project_obj.all(): if not project_obj.all():
return jsonify(code=RET.NODATA, msg='查询无数据!') return jsonify(code=RET.NODATA, msg='查询无数据!')
if flag == 1: if flag == 1:
num1 = 0 # 京津冀
num2 = 0 # 长三角
num3 = 0 # 珠三角
num4 = 0 # 中原经济区
num5 = 0 # 其他
total_num = project_obj.count() total_num = project_obj.count()
num1 = project_obj.filter(or_( num1 = project_obj.filter(or_(
ProjectManagement.project_source.like('%北京%'), ProjectManagement.project_source.like('%北京%'),
...@@ -799,8 +798,6 @@ def project_graph(): ...@@ -799,8 +798,6 @@ def project_graph():
)).count() )).count()
num4 = project_obj.filter(or_( num4 = project_obj.filter(or_(
ProjectManagement.project_source.like('%河南%'), ProjectManagement.project_source.like('%河南%'),
# ProjectManagement.project_source.like('%天津%'),
# ProjectManagement.project_source.like('%河北%'),
ProjectManagement.project_source.like('%长治%'), ProjectManagement.project_source.like('%长治%'),
ProjectManagement.project_source.like('%晋城%'), ProjectManagement.project_source.like('%晋城%'),
ProjectManagement.project_source.like('%运城%'), ProjectManagement.project_source.like('%运城%'),
...@@ -875,19 +872,128 @@ def project_graph(): ...@@ -875,19 +872,128 @@ def project_graph():
{"name": "第三产业", "value": round(project_count3 / total_num * 100, 2)}, {"name": "第三产业", "value": round(project_count3 / total_num * 100, 2)},
] ]
elif flag == 4: elif flag == 4:
industry_list = [] # industry_list = []
for project_obj_obj in project_obj.all(): # for project_obj_obj in project_obj.all():
if project_obj_obj.industry not in industry_list: # if project_obj_obj.industry not in industry_list:
industry_list.append(project_obj_obj.industry) # industry_list.append(project_obj_obj.industry)
continue # continue
else: # else:
continue # continue
industry_list = ["传统产业升级改造", "现代农业", "战略性新兴产业", "现代服务业", "文化旅游产业", "其他"]
data = [] data = []
num_li = []
for industry in industry_list: for industry in industry_list:
if industry == '其他':
all_project_count = project_obj.count()
other_num = all_project_count - sum(num_li)
data_dic = {"name": industry, "value": other_num}
data.append(data_dic)
else:
project_count = project_obj.filter(ProjectManagement.industry == industry).count() project_count = project_obj.filter(ProjectManagement.industry == industry).count()
num_li.append(project_count)
data_dic = {"name": industry, "value": project_count} data_dic = {"name": industry, "value": project_count}
data.append(data_dic) data.append(data_dic)
continue continue
elif flag == 5:
if project_source == '京津冀':
num1 = project_obj.filter(or_(
ProjectManagement.project_source.like('%北京%'),
)).count()
num2 = project_obj.filter(or_(
ProjectManagement.project_source.like('%天津%'),
)).count()
num3 = project_obj.filter(or_(
ProjectManagement.project_source.like('%河北%')
)).count()
total_num = sum([num1, num2, num3])
data = [
{"name": "北京市", "value": round(num1 / total_num * 100, 2)},
{"name": "天津市", "value": round(num2 / total_num * 100, 2)},
{"name": "河北省", "value": round(num3 / total_num * 100, 2)},
]
if project_source == '长三角':
num1 = project_obj.filter(or_(
ProjectManagement.project_source.like('%江苏%'),
)).count()
num2 = project_obj.filter(or_(
ProjectManagement.project_source.like('%浙江%'),
)).count()
num3 = project_obj.filter(or_(
ProjectManagement.project_source.like('%上海%')
)).count()
total_num = sum([num1, num2, num3])
data = [
{"name": "江苏省", "value": round(num1 / total_num * 100, 2)},
{"name": "浙江省", "value": round(num2 / total_num * 100, 2)},
{"name": "上海市", "value": round(num3 / total_num * 100, 2)},
]
if project_source == '珠三角':
num1 = project_obj.filter(or_(
ProjectManagement.project_source.like('%广东%'),
)).count()
num2 = project_obj.filter(or_(
ProjectManagement.project_source.like('%香港%'),
)).count()
num3 = project_obj.filter(or_(
ProjectManagement.project_source.like('%澳门%')
)).count()
total_num = sum([num1, num2, num3])
data = [
{"name": "广东省", "value": round(num1 / total_num * 100, 2)},
{"name": "香港特别行政区", "value": round(num2 / total_num * 100, 2)},
{"name": "澳门特别行政区", "value": round(num3 / total_num * 100, 2)},
]
if project_source == '中原经济区':
project_obj_list = project_obj.filter(or_(
ProjectManagement.project_source.like('%河南%'),
ProjectManagement.project_source.like('%长治%'),
ProjectManagement.project_source.like('%晋城%'),
ProjectManagement.project_source.like('%运城%'),
ProjectManagement.project_source.like('%聊城%'),
ProjectManagement.project_source.like('%菏泽%'),
ProjectManagement.project_source.like('%泰安%'),
ProjectManagement.project_source.like('%宿州%'),
ProjectManagement.project_source.like('%淮北%'),
ProjectManagement.project_source.like('%阜阳%'),
ProjectManagement.project_source.like('%亳州%'),
ProjectManagement.project_source.like('%蚌埠%'),
ProjectManagement.project_source.like('%淮南%'),
ProjectManagement.project_source.like('%邢台%'),
ProjectManagement.project_source.like('%邯郸%')
)).all()
source_list = set([project_obj.project_source for project_obj in project_obj_list])
num_list = []
source_data_list = []
data = []
for source in list(source_list):
num = project_obj.filter(or_(
ProjectManagement.project_source.like('%{}%'.format(source)),
)).count()
num_list.append(num)
source_data_list.append({"source": source, "num": num})
total_num = sum(num_list)
for source_data in source_data_list:
data_dic = {"name": source_data["source"], "value": round(source_data["num"] / total_num * 100, 2)}
data.append(data_dic)
continue
elif flag == 6:
project_obj_list = project_obj.filter(ProjectManagement.industry == industry_name).all()
industry2_name_list = set([project_obj.industry2 for project_obj in project_obj_list])
num_list = []
industry_data_list = []
data = []
for industry2 in list(industry2_name_list):
num = project_obj.filter(ProjectManagement.industry2 == industry2).count()
num_list.append(num)
industry_data_list.append({"industry": industry2, "num": num})
continue
total_num = sum(num_list)
for industry_data in industry_data_list:
data.append({"name": industry_data["industry"], "value": round(industry_data["num"] / total_num * 100, 2)})
continue
else: else:
return jsonify(code=RET.PARAMERR, msg="参数错误!") return jsonify(code=RET.PARAMERR, msg="参数错误!")
...@@ -915,7 +1021,8 @@ def areal_project(): ...@@ -915,7 +1021,8 @@ def areal_project():
try: try:
project_obj = ProjectManagement.query.filter( project_obj = ProjectManagement.query.filter(
ProjectManagement.district == district if district else text(''), ProjectManagement.district == district if district else text(''),
ProjectManagement.sign_time.like('%{}%'.format(str(current_year))) ProjectManagement.sign_time.like('%{}%'.format(str(current_year))),
ProjectManagement.is_delete == 0
) )
if flag == 1: # 项目来源区域分布项目列表 if flag == 1: # 项目来源区域分布项目列表
...@@ -960,8 +1067,6 @@ def areal_project(): ...@@ -960,8 +1067,6 @@ def areal_project():
elif project_source == '其他': elif project_source == '其他':
project_obj = project_obj.filter(and_( project_obj = project_obj.filter(and_(
ProjectManagement.project_source.notlike('%河南%'), ProjectManagement.project_source.notlike('%河南%'),
# ProjectManagement.project_source.notlike('%天津%'),
# ProjectManagement.project_source.notlike('%河北%'),
ProjectManagement.project_source.notlike('%长治%'), ProjectManagement.project_source.notlike('%长治%'),
ProjectManagement.project_source.notlike('%晋城%'), ProjectManagement.project_source.notlike('%晋城%'),
ProjectManagement.project_source.notlike('%运城%'), ProjectManagement.project_source.notlike('%运城%'),
...@@ -1003,14 +1108,23 @@ def areal_project(): ...@@ -1003,14 +1108,23 @@ def areal_project():
elif flag == 4: # 项目行业类型分布项目列表 elif flag == 4: # 项目行业类型分布项目列表
if industry_name: if industry_name:
project_obj = project_obj.filter(ProjectManagement.industry == industry_name) project_obj = project_obj.filter(ProjectManagement.industry == industry_name)
elif flag == 5: # 下钻的二级数据
if project_source:
project_obj = project_obj.filter(
ProjectManagement.project_source.like('%{}%'.format(project_source))
)
if industry_name:
project_obj = project_obj.filter(ProjectManagement.industry2 == industry_name)
else: else:
pass pass
if not project_obj.all(): if not project_obj.all():
return jsonify(code=RET.NODATA, msg='没有符合条件的数据!') return jsonify(code=RET.NODATA, msg='没有符合条件的数据!')
project_size = project_obj.count() project_size = project_obj.count()
id_list = [project_obj.id for project_obj in project_obj.all()]
project_obj_list = project_obj.order_by(ProjectManagement.upload_time.desc()).paginate(page, per_page).items project_obj_list = project_obj.order_by(ProjectManagement.upload_time.desc()).paginate(page, per_page).items
data = [{ data = [{
"id": project_obj.id, "id": project_obj.id,
"project_name": project_obj.project_name, "project_name": project_obj.project_name,
...@@ -1022,6 +1136,7 @@ def areal_project(): ...@@ -1022,6 +1136,7 @@ def areal_project():
return jsonify(code=RET.OK, return jsonify(code=RET.OK,
data={"data": data, data={"data": data,
"size": project_size, "size": project_size,
"id_list": id_list,
"msg": "数据获取成功!"}) "msg": "数据获取成功!"})
except Exception as e: except Exception as e:
current_app.logger.error(e) current_app.logger.error(e)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment