Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/360.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在Heroku(由Peewee和Postgres组成的应用程序)上上传一个简单的网站?_Python_Postgresql_Heroku_Peewee_Heroku Postgres - Fatal编程技术网

Python 如何在Heroku(由Peewee和Postgres组成的应用程序)上上传一个简单的网站?

Python 如何在Heroku(由Peewee和Postgres组成的应用程序)上上传一个简单的网站?,python,postgresql,heroku,peewee,heroku-postgres,Python,Postgresql,Heroku,Peewee,Heroku Postgres,我有一个app.py文件。我正试图上传到HEROKU上。我看到在Heroku上上传时需要做一些更改,比如添加Procfile和Requirements.txt。我还添加了这两个。它在本地运行得很好,但在Heroku数据库上并没有创建或连接 我在终端上正在做什么 heroku创建 git推送heroku主机 heroku插件:添加heroku postgresql heroku配置:设置heroku=1 heroku ps:scale web=1 heroku open 现在,我的用户注册网页正在

我有一个
app.py
文件。我正试图上传到HEROKU上。我看到在Heroku上上传时需要做一些更改,比如添加
Procfile
Requirements.txt
。我还添加了这两个。它在本地运行得很好,但在Heroku数据库上并没有创建或连接

我在终端上正在做什么

  • heroku创建
  • git推送heroku主机
  • heroku插件:添加heroku postgresql
  • heroku配置:设置heroku=1
  • heroku ps:scale web=1
  • heroku open
  • 现在,我的用户注册网页正在打开,但无法保存。请帮忙

    app.py

    import os
    import urlparse
    import psycopg2
    from peewee import Model, CharField, SqliteDatabase, CharField, ForeignKeyField, IntegrityError
    from peewee import create_model_tables
    from flask import Flask, request, render_template, redirect, url_for, session
    from passlib.hash import sha256_crypt
    from flask_bootstrap import Bootstrap
    from flask_peewee.db import Database
    
    if 'HEROKU' in os.environ:
        DEBUG = False
        urlparse.uses_netloc.append('postgres')
        url = urlparse.urlparse(os.environ['DATABASE_URL'])
        DATABASE = {
            'engine': 'peewee.PostgresqlDatabase',
            'name': url.path[1:],
            'user': url.username,
            'password': url.password,
            'host': url.hostname,
            'port': url.port,
        }
    else:
        DEBUG = True
        DATABASE = {
            'engine': 'peewee.PostgresqlDatabase',
            'name': 'notes',
            'user': 'scrolldev',
            'password': 'scrolldev',
            'host': 'localhost',
            'port': 5432,
            'threadlocals': True
        }
    
    
    app = Flask(__name__)
    bootstrap = Bootstrap(app)
    app.config.from_object(__name__)
    db = Database(app)
    
    
    class User(db.Model):
        ....
    
    
    class Notepad(db.Model):
        ....
    
    def setup_db():
        create_model_tables([User, Notepad], fail_silently=True)
    
    ....
    ....
    ....
    if __name__ == '__main__':
        setup_db()
        app.secret_key = 'super_secret_key'
        app.run(debug=True)
    
    在提出这个问题之前,我还从这里获得了帮助,然后更新了我的文件

    更新
    它在本地运行正常,但在heroku上运行不正常。请帮助我。

    如果
    os.environment
    中包含
    'HEROKU'
    ,您的代码将从
    数据库的
    url
    环境变量加载
    url

    如果操作系统环境中的“HEROKU”:
    调试=错误
    urlparse.uses_netloc.append('postgres')
    url=urlparse.urlparse(os.environ[“DATABASE_url”])
    
    …但它也会在前面几行的条件外加载它:

    来自peewee导入模型,PostgresqlDatabase
    urlparse.uses_netloc.append('postgres')
    
    url=urlparse.urlparse(os.environ['DATABASE\u url'])#@coleifer您能研究一下吗错误消息清楚地说明了问题:您的
    os.environ
    没有
    'DATABASE\u url'
    键。您设置了这个环境变量吗?我正在使用os.environ中的
    if Heroku
    。这意味着在本地它不应该产生任何问题,谢谢你告诉我的错误。但我的问题有点不同。我不知道在数据库中传递什么。@Rahushrivastava,这是一个完全不同的问题。我回答了你原来的问题。请不要编辑您的问题以完全改变其含义。如果这解决了您原来的问题,请在提交新问题的同时提交新问题。