flask 通过菜单信息 在网址链接中传参

88 篇文章 4 订阅
66 篇文章 1 订阅

1、构造菜单项
sidemenu = {
‘transportanalysis’: {
‘text’: ‘待处理投诉迁徙分析’,
‘href’: ‘javascript:;’,
‘icon’: ‘icon-home’,
‘submenu’: {}
},
‘sourceanalysis’: {
‘text’: ‘待处理投诉资源分析’,
‘href’: ‘javascript:;’,
‘icon’: ‘icon-home’,
‘submenu’: {},
},
‘three’: {
‘href’: ‘forwordanalysis’,
‘icon’: ‘icon-home’,
‘text’: ‘已处理投诉分析’,
‘submenu’: {}
},
‘four’: {
‘href’: ‘suggestion’,
‘icon’: ‘icon-home’,
‘text’: ‘优化建议’,
‘submenu’: {}
},
‘five’: {
‘href’: ‘upload’,
‘icon’: ‘icon-home’,
‘text’: ‘外部文件输入’,
‘submenu’: {}
},
}
def creatmeanu():
ticklist = pd.read_sql_table(‘大服务投诉单明细表’,con=engineCustomerService)

tickcurrent =  ticklist[ticklist.处理状态 == '待处理']

for tickid in tickcurrent['工单号'].values.tolist():
    sidemenu['sourceanalysis']['submenu'][tickid] = {
            'name':'currentanalysis',
            'text': tickid,
            'href': tickid,
            'icon': 'icon-home'}
    sidemenu['transportanalysis']['submenu'][tickid] = {
            'name':'transportanalysis',
            'text': tickid,
            'href': tickid,
            'icon': 'icon-home'}
return sidemenu

以上菜单项通过字典建立,包含主菜单和子菜单,其中name用于做属性标识,text用于显示,href用于传参(并非网址链接)
2、在html中通过flask jinjia语句构造菜单并定于href链接对应或后端的函数,通过菜单字典查询赋值传递参数

placeid:传参
url_for(‘CustomRequest.transportanalysis’:后端函数

  • {% for firstmnu,info in sidemenu.items() %}

3、后端接收参数进行分析运算,再传回html页面,这个页面可以和传参html用同一个模板,也可独立制作html模版
@CustomRequest.route(‘/transportanalysis’, methods=[‘GET’])
@login_required
def transportanalysis():
tickid = request.args.get(‘placeid’)
# 获取工单对应的投诉工单及地址列表,并转成json格式
needplace = gpd.read_postgis(“大服务投诉单位置明细表”, con=engineCustomerService)
del needplace[‘编码’]
needplace[‘投诉地址’] = needplace.投诉地址.apply(lambda x: x.replace(’ ', ‘’))
needplace[‘color’] = ‘#ffa022’
needplace[‘pointrange’] = 300
needplacecu = needplace[needplace.工单号 == tickid]
print(needplacecu)
needplacejson = json.loads(needplacecu.to_json())
# for i in range(len(needplacejson[‘features’])):
# lonlat = needplacejson[‘features’][i][‘geometry’][‘coordinates’]
# needplacejson[‘features’][i][‘geometry’][‘coordinates’] = ModifyLonlat().wgs84_to_gcj02(lonlat[0], lonlat[1])
needplacejson = pd.io.json.dumps(needplacejson)
print(needplacejson)

# 库存表数据
intablereport=pd.read_sql_table('大服务投诉单明细表',con=engineCustomerService)
# 待处理数据表
reportnow=intablereport[intablereport.工单号==tickid]
nowtickid=reportnow['工单号'].values.tolist()
print(nowtickid)
webreportnowcolumns = reportnow.columns.tolist()
webreportnow = reportnow.values.tolist()

#待处理用户投诉地址

needplace=gpd.read_postgis(‘大服务投诉单位置明细表’,con=engineCustomerService, geom_col=‘geom’)

needplace=needplace[needplace.工单号.isin(nowtickid)]

# needplace=needplace[needplace.工单号=='TS2018032301167']
# for i in range(len(placegis)):
#     placegis.iloc[i]['color']=randomcolor()
#
# needplace['pointrange']=500
# print(needplace)
# print('-------------')
# needplace['投诉地址']=needplace['投诉地址'].apply(lambda x:x.replace(' ',''))
# del needplace['编码']
# needplacejson = json.loads(needplace.to_json())
# needplacejson=pd.io.json.dumps(needplacejson)
# print(needplacejson)

用户迁徙数据

customsession.query(‘CustomPlaceReport’).fi

sql=customsession.query(CustomPlaceReport).filter(CustomPlaceReport.ticketid==tickid)
sql=sql.statement
print(sql)
loctionall= gpd.GeoDataFrame.from_postgis(sql, con=engineCustomerService, geom_col='geom')
del loctionall['编码']
# loctionall=loctionall[loctionall.ticketid.isin(nowtickid)]
transportjson = json.loads(loctionall[
                               ['Ci', '小区名称', '用户号码', 'ticketid', 'timelong', 'geom']].to_json())
transportjson=pd.io.json.dumps(transportjson)
print(transportjson)

生成迁徙点的唯一性列表用于作图的字典

placelist = loctionall[['Ci', '小区名称', 'geom']].drop_duplicates()
placelistjson=json.loads(placelist.to_json())
placelistjson=pd.io.json.dumps(placelistjson)
return render_template('custom_transport_analysis.html', sidemenu=sidemenu,tickid=tickid,
                       webreportnowcolumns=webreportnowcolumns,webreportnow=webreportnow,
                       transportjson=transportjson,placelistjson=placelistjson,needplacejson=needplacejson)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值