项目实训(十二) —— 远程数据库

之前都是在本地数据库进行简单的数据读写操作,进一步升华数据的操作便是连接操作远程库了。本文就简单描述连接远程数据库并配合分页展示数据、普通上传数据的过程。

之前的分页功能,需要class映射一张表,内部数据即可自动分页。但一般数据库select的结果是二维list,无法复用分页功能。这一点造成了较大困扰,大约经历如下方案后得以解决:

1.映射数据库多个表到多个class内,自主筛选。结果一旦经历筛选,就变成了list,无法保持class,最终放弃。

2.联系数据库同学,提供根据用户ID筛选后,结果建立表,表名用ID命名,便于映射。方案成功。

接下来就成功经验加以记录。

首先是连接远程数据库,实际远程连接语句包含密码,不予展现;仅说明模式,语句和之前本地一样,改改关键字符就可以实现:

# 数据库配置  mysql://username:password@hostname/database

数据库同学提供查询数据并建立表,供我进行映射使用。

具体数据库函数代码涉及密码,不作呈现。

仅在我的py文件内引入,传入ID使用删除、建立table的函数,之后便可以进行映射了:

import backinform


backinform.deletetable(ID)
backinform.createtable(ID)

然后和上上篇一样的流程,建立好与数据库内上步新建好的表相对应的class:

 # 食谱表的实体类
    class Food_inform(db.Model):
        # 定义表名
        __tablename__ = 'food_{0}'.format(ID)

        # 定义列
        food_id = db.Column(db.CHAR(10), primary_key=True)
        food_name = db.Column(db.CHAR(20))
        food_infor = db.Column(db.CHAR(100))
        url = db.Column(db.CHAR(100))
        time = db.Column(db.CHAR(20))

        def __init__(self, food_id, food_name, food_infor, url, time):
            self.food_id = food_id
            self.food_name = food_name
            self.food_infor = food_infor
            self.url = url
            self.time = time

        def __repr__(self):
            return '<{},{},{},{},{}>'.format(self.food_id, self.food_name, self.food_infor, self.url, self.time)

之后映射成功的class就可以套入分页模式(和上上篇一样),成功分页了。

 连接远程数据库下的select信息+分页效果如下:

有关上传文件,也是传入ID,调用数据库同学的函数得以实现。相比原来只是替换了函数,转变远程比较简单:

backinform.insert_food(user_ID, food_pic, food_material, food_name, now_time)

至此,大的难点便都解决了。余下事宜还有:对接饮食识别,调整样式等。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值