所以我有一些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'),
]