gpt4 book ai didi

python - 如何使用 MySql 上的 Python Django 让应用程序在 Heroku 上运行? KeyError : '' , 代码=H10 描述 ="App crashed"

转载 作者:行者123 更新时间:2023-11-29 16:14:21 24 4
gpt4 key购买 nike

我一直在尝试在网络上获得我的第一个应用程序。作为云应用平台Heroku 。该应用程序是用 Python 和 Django 构建的,旨在使用 MYSQL 数据库,该数据库作为 add_on JAWSDB 提供。 JAWSDB 的 url 设置为 DATABASE_URL。我的应用程序代码在 GitHub 上公开。我能够在 Heroku 上部署代码,但打开应用程序时出现应用程序错误。(参见下面的日志)。我认为这与my_settings有关,老实说我不知道​​要纠正什么。

  1. 是否是数据库没有打开? at=error code=H10 desc="App crashed"method=GET path="/"host=learningnow.herokuapp.com但是可以通过 MySql Workbench 连接到远程数据库。<
  2. 日志指的是

engine = SCHEMES[url.scheme] if engine is None else engine KeyError: ''

django_heroku.settings(locals())

我假设已找到 DATABASE_URL,但它似乎不起作用。

  • 与 config = parse(s, engine, conn_max_age, ssl_require) 有关。然而,在我最后一次尝试中,我已经放了

    数据库 = { '默认': { '引擎': 'django.db.backends.mysql', 'NAME': dj_database_url.config(默认=os.environ[DATABASE_URL], ssl_require=False), }

  • 2019-03-02T15:33:06.132322+00:00 app[web.1]: engine = SCHEMES[url.scheme] 如果引擎是 None else 引擎2019-03-02T15:33:06.132370+00:00 应用程序[web.1]: KeyError: ''2019-03-02T15:33:07.351885 + 00:00 heroku [路由器]:at =错误代码= H10 desc =“应用程序崩溃”方法= GET路径=“/”主机=learningnow.herokuapp.com request_id = 28373f9d-99b1 -4362-8054-de2e72aac130 fwd =“81.207.96.28”dyno =连接=服务=状态= 503字节=协议(protocol)= https2019-03-02T15:33:08.147290 + 00:00 heroku [路由器]:at =错误代码= H10 desc =“应用程序崩溃”方法= GET路径=“/favicon.ico”主机=learningnow.herokuapp.com request_id = 073e5f94-a1ce-41ea-979c-4dabb341ea86 fwd="81.207.96.28"dyno=连接=服务=状态=503字节=协议(protocol)=https

    查看 my_settings.py 文件的最后一部分,该文件用于在 Heroku 上连接并打开应用程序:

    # Heroku settings

    如果 os.getcwd() == '/app': 导入 django_heroku django_heroku.settings(locals())

    import dj_database_url

    DATABASES = {
    'default': {
    'ENGINE': 'django.db.backends.mysql',
    'NAME': dj_database_url.config(default=os.environ[DATABASE_URL],
    ssl_require=False),
    }
    }

    # Honor the 'X-Forwarded-Proto' header for request.is_secure().
    SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')

    # Allow all host headers.
    ALLOWED_HOSTS = ['*']

    # Static asset configuration
    BASE_DIR = os.path.dirname(os.path.abspath(__file__))
    STATIC_ROOT = 'staticfiles'
    STATICFILES_DIRS = (
    os.path.join(BASE_DIR, 'static'),
    )

    关于如何做得更好有什么建议吗?

    最佳答案

    问题已解决,需要进行一些代码更改。请参阅enter link description here

    对于 Heroku 的完整工作应用程序,使用 Python 框架和 Django 连接到 JawsDB 附加组件 (MySql) 数据库。

    特别是必须设置与 JawsDb 的连接:请参阅 my_settings.txt 文件的最后部分:

    if os.getcwd() == '/app':
    import django_heroku

    DEBUG = True
    ALLOWED_HOSTS = ['learningnow.herokuapp.com']

    DATABASE_URL = os.getenv('DATABASE_URL')
    SECRET_KEY = os.getenv('SECRET_KEY')

    database_attr = DATABASE_URL.split(':')

    JaName = database_attr[3].split('/')[1].rstrip("'")
    JaUser = database_attr[1].lstrip('//')
    JaPwrd = database_attr[2].split('@')[0]
    JaHost = database_attr[2].split('@')[1]
    JaPort = int(database_attr[3].split('/')[0])

    DATABASES = {
    'default': {
    'ENGINE': 'django.db.backends.mysql',
    'NAME': JaName,
    'USER': JaUser,
    'PASSWORD': JaPwrd,
    'HOST': JaHost,
    }
    }`

    关于python - 如何使用 MySql 上的 Python Django 让应用程序在 Heroku 上运行? KeyError : '' , 代码=H10 描述 ="App crashed",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54960595/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com