【问题标题】:Hosting flask API托管烧瓶 API
【发布时间】:2021-06-17 02:03:44
【问题描述】:

如果我的某些术语在此处不正确,请原谅我,我对所有这些都是新手。

我已经构建了一个 python-flask API,可以从我的 PostgreSQL 数据库中获取数据。我试图让我的 API 托管在 Heroku 上,但我认为它不成功,因为我的 API 使用我的 postgres 用户名和密码连接到本地主机。我需要先托管我的数据库,然后才能在 Heroku 上托管我的 API。

谢谢

app.py

import pandas as pd
import psycopg2
import sqlalchemy
from sqlalchemy import create_engine
from flask import Flask, jsonify, request, render_template
from flask_cors import CORS
from fuzzywuzzy import fuzz

# Postgres username, password, and database name
username = 'postgres'
password = 'XXXXXXXXXX' # postgres password
host = 'localhost'
port = '5432'
database = 'test'

# string that contains necessary postgres login info
postgres_str = ('postgresql://{username}:{password}@{ipaddress}:{port}/{database}'
                .format(username=username,
                        password=password,
                        ipaddress=host,
                        port=port,
                        database=database
                        ))
               
# create the connection
conn = create_engine(postgres_str)

app = Flask(__name__)
CORS(app=app)

@app.route('/bamboo/<product>', methods=['GET'])
def getProducts(product):

    # GET request
    if request.method == 'GET':
        
        query = """select a.*, b.logo
                   from products a
                   left join companies b on a.company_name = b.company_name
                   where CAST(product_price as int) != 0
                   """
        
        df = pd.read_sql_query(query, conn)

        final_results = df.to_json(orient='records')

        return final_results  # serialize and use JSON headers


if __name__ == '__main__':
    # run!
    app.run()

【问题讨论】:

    标签: python postgresql heroku sqlalchemy heroku-postgres


    【解决方案1】:

    是的。您需要先托管数据库。你可以使用Heroku CLI

    所以首先进入你的终端并使用以下命令登录到你的 Heroku 帐户,然后按 Enter,你将看到一条带有你的帐户名的成功登录消息。

    $ heroku login
    

    现在使用以下命令为您的应用创建一个数据库,

    $ heroku addons:create heroku-postgresql:hobby-dev --app app_name
    

    现在,在创建数据库后,使用以下命令获取数据库的 URL,

    $ heroku config --app app_name
    

    请参考thisthis 了解更多信息。

    【讨论】:

      猜你喜欢
      • 2014-03-03
      • 2016-05-13
      • 2020-03-27
      • 2019-08-09
      • 2016-12-04
      • 1970-01-01
      • 2018-04-15
      • 1970-01-01
      • 2020-08-16
      相关资源
      最近更新 更多