项目实训(五) —— flask连接数据库

上篇已经准备好了一个本地的PostgreSQL数据库,要实现用户饮食记录的展示和上传,就需要建立一张表,并实现flask读取以及写入数据库的操作。

首先新建立一张表,内含饮食记录所需要的各项属性:

CREATE TABLE  ourfood(
   ID              INT,
   NAME           CHAR(10),
   Time            CHAR(20),
   FoodPic           CHAR(100),
   FoodName            CHAR(20),
   FoodMaterial     CHAR(50)
); 

flask导入需要的头文件:

from flask import Flask, render_template, request, g
import psycopg2

然后是flask的后端接入数据库,接入函数如下:

def get_conn():
    if "conn" not in g:
        g.conn = psycopg2.connect(
            database="postgres", user='postgres', password='123',
            host='127.0.0.1', port='5432')
    return g.conn

接收到上个函数的返回值后便成功连接到了数据库,也就可以操纵数据库的表格,先以插入数据的函数为例:

def insert_data(user_id, name, insert_time, food_pic, food_name, food_material):  # 连接数据库并插入菜信息的数据库和sql函数
    conn = get_conn()
    cur = conn.cursor()
    sql = "insert into ourfood (id,name,time,foodpic,foodname,foodmaterial) " \
          "values ('{0}','{1}','{2}','{3}','{4}','{5}');".format(user_id, name, insert_time, food_pic, food_name, food_material)
    print(sql)
    cur.execute(sql)
    conn.commit()
    print('更新成功')

调用此函数时,仅需要传入相应的参数:

insert_data(user_ID, user_name, now_time, food_pic, food_name, food_material)

读取数据库的函数思路也是同理,使用时接收fetch all的返回值,是依据查询条件查到的一张二维列表:

def read_data(user_id):
    conn = get_conn()
    cur = conn.cursor()
    sql = "select foodname, foodmaterial, time, foodpic from ourfood where id = '{0}'".format(user_id)
    print(sql)
    cur.execute(sql)
    result = cur.fetchall()
    conn.commit()
    return result

调用读取数据函数时,接收返回值,便于后续传入前端来使用:

result = read_data(user_ID)  # 读数据库并传到变量result内

综上,可以实现flask对数据库的读写操作,接下来就是与前端结合,显示地进行数据的操作。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值