如何让一个应用在Heroku上运行,在MySql上使用pythonDjango?KeyError:“”,code=H10 desc=“应用程序崩溃”

2024-06-14 07:59:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我一直试图在网上得到我的第一份申请。 用作云应用程序平台Heroku。 该应用程序是用Python和Django构建的,并打算使用MYSQL数据库,该数据库在JAWSDB上以add_的形式提供。JAWSDB的url设置为数据库的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())

我假设已经找到了数据库的URL,但它似乎不起作用。在

  1. 它与config=parse(s,engine,conn_max_age,ssl需要)有关。但是在我最后一次尝试中

    数据库={ “默认值”:{ '引擎':'django.db.后端.mysql', “NAME”:dj峎数据库_url.config文件(违约=操作系统环境[数据库网址], ssl_require=False), }

2019-03-02T15:33:06.132322+00:00应用程序[web.1]:引擎=方案[网址.scheme]如果发动机不是其他发动机 2019-03-02T15:33:06.132370+00:00应用程序[web.1]:键错误:“” 2019-03-02T15:33:07.351885+00:00 heroku[router]:at=错误代码=H10 desc=“App crasted”method=GET path=“/”主机=learningnow.herokuapp.com网站请求_id=28373f9d-99b1-4362-8054-de2e72aac130 fwd=“81.207.96.28”dyno=connect=service=status=503 bytes=protocol=https 2019-03-02T15:33:08.147290+00:00 heroku[router]:at=错误代码=H10 desc=“应用程序崩溃”方法=获取路径=“/图标文件“主人=learningnow.herokuapp.com网站请求_id=073e5f94-a1ce-41ea-979c-4dab341ea86 fwd=“81.207.96.28”dyno=connect=service=status=503 bytes=protocol=https

看看我的最后一部分_设置.py用于连接并打开Heroku上的应用程序的文件:

# Heroku settings

如果操作系统getcwd()=='/app': 进口django iu heroku django公司_heroku.设置(局部变量())

^{pr2}$

有什么好的建议吗?在


Tags: 文件djangocom数据库应用程序urlherokusettings
1条回答
网友
1楼 · 发布于 2024-06-14 07:59:55

问题解决了,需要进行一些代码更改。 见enter link description here

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

尤其是必须设置到JawsDb的连接:请参见my的最后一部分_设置.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,
    }
}`

相关问题 更多 >