当瓶子中有新价格时刷新页面(Python)

时间:2017-07-12 06:49:59

标签: python html bottle

我正在为我的公司在Bottle for Python中制作比特币/以太坊价格自动收报机网页,我希望在有新价格时刷新页面。我从公司提供的API端点提取价格数据。出于安全考虑,我已将URL隐藏起来。

templates.py

from bottle import run, get, route, template
import requests

main_api = #url to company's api

def isDataValid(json_data):
  if "status" in json_data:
      return True
  else:
      return False

def returnPrices(coin, curr):
  url = main_api + coin + curr
  json_data = requests.get(url).json()
  prices = {}

  if isDataValid(json_data) == True:
      buy_price = str(json_data["data"]["buy_price"])
      sell_price = str(json_data["data"]["sell_price"])
      prices = [buy_price, sell_price]
  else:
      prices = ["Error"]

  return prices

@route('/')
def index():

  pricesBTC = returnPrices('BTC','USD')
  pricesETH = returnPrices('ETH','USD')
  btc_buy_price = pricesBTC[0]
  btc_sell_price = pricesBTC[1]

  eth_buy_price = pricesETH[0]
  eth_sell_price = pricesETH[1]

  return template('index', btc_buy_price = btc_buy_price, btc_sell_price = btc_sell_price, eth_buy_price = eth_buy_price, eth_sell_price = eth_sell_price)

run(reLoader = True, debug = True)

那么每次价格变动时如何刷新页面?我认为ETH和BTC的价格不会同时发生变化,所以每当其中任何一个发生变化时我都可能不得不刷新。谢谢。

1 个答案:

答案 0 :(得分:1)

没有一些浏览器端的JavaScript是不可能的。 例如,您创建了另外的Bottle端点,它将更新的数据作为JSON提供,并且浏览器内脚本通过AJAX轮询该数据并更新相应的html页面元素。 就JS而言,有太多方法可以实现这个功能,从简单的JQuery到JS框架,如Angular和Vue.js。