我有一个运行在Heroku上的Python 2.7/Flask应用程序,它可以收集数据,现在我想将这些信息存储在数据库中。
我试着遵循教程like this one并将其应用到我的案例中,但我无法让它发挥作用。
我已经成功地在heroku上创建和推广了postgres数据库。
我对Python项目体系结构还比较陌生,我怀疑我的设置中有一个简单的问题。
这是我的项目结构

/myapplication
    Procfile
    run.py
    requirements.txt
    /app
        __init__.py
        mechanize_boilerplate.py
        views.py
        /static
        /templates

这是我的init.py
from flask import Flask
from flask.ext.sqlalchemy import SQLAlchemy
import os

app = Flask(__name__)
# DB Configuration
app.config['SQLALCHEMY_DATABASE_URI'] = os.environ.get('postgres://{link I got from heroku}')
db = SQLAlchemy(app)


from app import views

这是我的部分观点
from app import app
import mechanize_boilerplate
import os
from flask import Flask, render_template, request
from app import db

class User(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(80))
    email = db.Column(db.String(120), unique=True)

    def __init__(self, name, email):
        self.name = name
        self.email = email

    def __repr__(self):
        return '<Name %r>' % self.name

@app.route('/db')
def dbtest():
    try:
        user = User('John', '[email protected]')
        db.session.add(user)
        db.session.commit()
    except:
        print 'DB error'
    return 'done'

基本上,当我访问myapp/db时,我想创建一个带有id、name和email的记录(john,[email protected])。
有什么想法吗?

最佳答案

应该os.environ.get('DATABASE_URL')

关于python - 无法在Heroku应用上访问Postgres DB,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25707214/

10-12 16:52