代码之家  ›  专栏  ›  技术社区  ›  Joel G Mathew

在heroku上运行django应用程序时查询结果为空,但在开发服务器上查询结果正常

  •  0
  • Joel G Mathew  · 技术社区  · 7 年前

    我今天刚开始用heroku。我在测试一个web应用程序,在使用本地开发服务器和heroku上的django应用程序时得到了不同的结果。我已经通过运行django开发web服务器导入数据库。因为postgredb使用amazonaws url,所以我假设heroku上的生产服务器可以使用这些数据。

    在我的本地django Web服务器上,以下搜索结果正确:

    from django.db.models import CharField
    from django.db.models.functions import Lower
    CharField.register_lookup(Lower, "lower")
    import logging
    logger = logging.getLogger('testlogger')
    logger.info('This is a simple log message')
    items_set = []
    if request.method == 'POST':
        print(request.POST.get)
        form = CGHSMetaForm(request.POST)
        name = request.POST.get('name').lower()
        items_set = CGHSRates.objects.filter(
            name__lower__contains=name).order_by('name')
        print(items_set)
        logger.info(items_set)
    else:
        form = CGHSMetaForm()
    
    return render(
        request, 'app/cghs_search.html', {
            'rnd_num': randomnumber(),       
            'form': form,
            'items': items_set,
        })
    

    我得到以下结果:

    Code
    Name
    Rate
    1098
    After Mastectomy (Reconstruction)Mammoplasty
    Rs 13800.0
    364
    Local mastectomy-simple
    Rs 14548.0
    251
    Mastoidectomy
    Rs 17193.0
    

    该数据库是默认的heroku数据库,一个postgre db,由中的以下设置定义设置.py:

    import dj_database_url
    DATABASES = {'default': dj_database_url.config(default='postgres://kpnbcpyqtxxjqu:2c86exffsdff0d789e7f3b29d70sfsfsffs7be197sffsfsffb233@ec2-53-22-46-10.compute-1.amazonaws.com:5432/dful1l3ra7nknn')}
    

    为什么在不同的服务器上访问同一个数据库会产生不同的结果?我应该检查什么?

    1 回复  |  直到 7 年前
        1
  •  1
  •   Daniel Roseman    7 年前

    dj_database_url 并设置 违约

    如果你想硬编码你的数据库,你应该直接在设置中这样做,而不是使用dj\u数据库\uurl。