有可能从Heroku Postgresql中提取数据吗



目前我正在开发一个电报机器人,使用Heroku和Flask进行部署。我想将一些数据存储到数据库中,然后我遇到了Heroku PostgreSQL。我设法将数据存储到其中,但在从Heroku PostgreSQL检索这些数据时遇到了问题。我做了很多研究,但找不到太多关于提取数据过程的信息。有人能告诉我或建议用Flask从Heroku PostgreSQL检索/提取这些数据的步骤是什么吗?

Telegram Bot基本上是一个随机的食物生成器。我已经将食物列表存储到数据中,并希望在用户触发机器人/动作时提取这些数据和随机生成器。

当前heroku postgresql数据库的屏幕截图

from os import environ
from flask import Flask, request, jsonify
from flask_sqlalchemy import SQLAlchemy
from flask_cors import CORS
from invokes import invoke_http
app = Flask(__name__)
app.config["SQLALCHEMY_DATABASE_URI"] = environ.get("DB_URL") or "postgres://database-url"
app.config["SQLALCHEMY_TRACK_MODIFICATION"] = false
db = SQLAlchemy(app)
CORS(app)
class Cusine(db.Model):
__tablename__ = "cusines"
id = db.Column(db.String(255), primary_key =True)
cusine = db.Column(db.String(255), nullable=False)
def __init__(self, id, cusine):
self.id = id
self.cusine = cusine
def getId(self):
return self.id
def getCusine(self):
return self.cusine  
def json(self):
return {"id": self.id,"cusine":self.cusine}
db.create_all()
@app.route("/getAllCusine")#
def getAllCusine():
try:
all_cusine = Cusine.query.all()
cusines = []
for row in all_cusine:
cusines.append(row.cusine)
return jsonify(
{
"code": 200, 
"message": cusines
}
),200
except:
return jsonify(
{
"code": 500, 
"message": "error in getting all course" 
}
),500

那么,如何使用Flask从Heroku PostgreSQL中提取数据呢?

提前谢谢。

我已经设法从Heroku PostgreSQL中提取了数据。

我用以下代码更改了上面的代码。

import os
import psycopg2
DATABASE_URL = os.environ['DATABASE_URL']
def retrieveData():
try:
conn = psycopg2.connect(DATABASE_URL, sslmode='require')
cursor = conn.cursor()
cursor.execute("select * from table") #some sql statement
conn.commit()
result = cursor.fetchall()
cursor.close()
except (Exception, psycopg2.DatabaseError) as error:
print(error)
return result

它将返回一个元组列表。

记住pip install psycopg2-binary

这是我第一次使用Heroku和PostgreSQL,我花了很长时间才弄清楚。但感谢那个家伙教我如何正确使用stackerflow,非常感谢。希望这能帮助到像我这样刚接触PostgreSQL的人。干杯:(

最新更新