项目实训(十三) —— 识别对接

项目实训已经到了最后一周,接下来是有关项目最后三篇博客了。

按照规定一周至少更新三篇博客,但是工作内容决定我的工作会是前紧后松。为了使最后一周也有充实的内容可写,我便把工作记录博客匀了匀,实际完成该内容的时间大约提前博客记录一周。

上篇之后,剩下的较大的功能就是上传食谱后与识别的对接了。有关这项工作,首先与专攻识别的同学进行了沟通,将识别原先的“手动选择图片—识别”改为了“后端传入新传的图片—识别”。专攻识别的同学顺利为我达成了后者的需求。

接下来我便先调通该代码,再融入到自己的跳转逻辑内。

调通代码方面,主要遇到了两个问题:

其一是配置环境,一般的缺包装包是比较流畅的,但识别涉及到了“from flask_sqlalchemy import SQLAlchemy”,这两个包比较特殊,攻略装包总是中断。无奈之下,想起来之前机器学习课设有配置过这两个包的环境,于是进行了阵地转移,将实验环境整体换为那份实验用过的环境,再重新装flask相关的包。如此迂回的策略终于顺利结决了环境的难题。

其二是路径问题,识别的代码内规定了些路径,导致数据库内的图片路径不适用于此份代码。定位问题所在后,多次调整声明路径的描述字符以及HTML调用其他文件的路径,得以顺利解决。

代码调通之后,我便利用专攻识别的同学提供的代码就行正式的对接。

首先模仿数据库同学的数据库筛选数据的代码,完成一份read_pic()的函数,用以读出数据库内最新传入的图片和菜谱名字。代码如下:

def read_pic(user_id):
    conn = psycopg2.connect()
    cursor = conn.cursor()
    conn.autocommit = True
    sql = "select food_name, url from FOOD_TABLE,RELATION_TABLE WHERE relation_table.id='" + user_id + "'AND FOOD_TABLE.food_id=RELATION_TABLE.food_id AND RELATION_TABLE.relationship='0'"
    print(sql)
    cursor.execute(sql)
    pic_result = cursor.fetchall()
    conn.commit()
    return pic_result

然后,在py文件内将上步选出的数据传入识别的HTML,进行使用:

# 饮食识别页面
@app.route('/f_identify')
def food_identify():
    user_ID = 1471
    user_name = '小小姚'
    ID = np.str(user_ID)

    pic_result = backinform.read_pic(ID)  # 读数据库并传到变量result内
    data = np.array(pic_result)  # 列表转化为数组,便于操作
    number = data.shape[0]-1  # 获取数组最后一行数据的下标
    print(data[number][1])
    return render_template('identify.html', f_pic=data[number][1], f_name=data[number][0])

最后,将HTML的post路径调通,py文件对应post的部分也改为数据库选图片,得以最终实现上传识别的对接。

此时的对接成功实现了在上传后点击进入识别页面,但识别页面尚有冗余窗口。这一点测试组同学后来也发现了,将在下篇进行解决的记录。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值