在Docker(Cloudron)中刷新Django应用程序的值

时间:2017-10-26 07:00:36

标签: python django docker

所以我有一些Python知识,但我是Django和Docker的初学者。

我的问题如下:我将一个非常基本的Django应用程序打包到Docker应用程序中(实际上是一个Cloudron应用程序,Cloudron是一个基于Docker的解决方案)。该应用现在正在我的服务器上运行(eth.ncollig.net)。它的目的是给我以太的代价。

但是view.py脚本在服务器上的应用程序启动时运行,变量的值,以欧元表示的以太币的价格,已设置为251.7,并且永远不会刷新。

我希望在每次新页面加载时重新计算此变量的值。我该怎么做才能实现这个目标?

提前感谢您的帮助。

这是我的views.py:

from django.http import HttpResponse
from coinbase.wallet.client import Client

client = Client('yhKYHa8AkQaHXDMc','quspNs86vAvsRtyuGmE3nC5o9Nki2pqP')

rates = client.get_exchange_rates(currency='ETH')
eth_rate = rates['rates']['EUR']

def index(request):
    return HttpResponse("1 ETH = %s EUR" % eth_rate)

这是我的start.sh,用于启动gunicorn服务器:

#!/bin/bash

# Start Gunicorn processes
echo Starting Gunicorn.
exec gunicorn ethprice.wsgi:application \
    --bind 0.0.0.0:8000 \
    --workers 3

Dockerfile:

FROM cloudron/base:0.11.0
MAINTAINER Authors name <support@cloudron.io>

RUN mkdir -p /app/code
WORKDIR /app/code

COPY ethprice /app/code/
COPY start.sh /app/code/start.sh
COPY requirements.txt /app/code/requirements.txt

EXPOSE 8000

RUN pip install --upgrade pip
RUN pip install -r requirements.txt

CMD ["/app/code/start.sh"]

这里是wsgi.py:

import os

from django.core.wsgi import get_wsgi_application

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "ethprice.settings")

application = get_wsgi_application()

和urls.py:

from django.conf.urls import url
from django.contrib import admin

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'', 'ethprice.views.index'),
]

0 个答案:

没有答案