以下のコードはサーバーを立ち上げ、WebAPIからデータをjson形式で取得し、取得したデータを http://localhost:8000/api2 に表示させるようなプログラムです。
やりたいこととして、WebAPIのデータが定期的に増えていくとしたとき、それに合わせてサーバー側でも定期的に自動でデータを取得し直し、http://localhost:8000/api2 に増えた分のデータも表示できるようにしたいです。
アプローチとして関数api2 を何秒かおきに処理すればできるのでは?と思い、以下の
time.sleep(5)
interval = 10
while True:
api2()
time.sleep(interval)
を書き加えているのですが、書き加えると取得したデータが表示されなくなりました。
pythonは使い始めたばかりで中々解決できません。どうかご教授ください。
python
1 2# -*- coding:utf-8 -*- 3import os 4import sys 5import json 6import lib 7import requests 8from bottle import Bottle, request, response, run,route,HTTPResponse 9app = Bottle() 10import simplejson as json 11from bottle import hook, response 12import time 13 14@route('/api2', method=['OPTIONS', 'GET']) 15def api2(): 16 univ = "hogehoge" 17 username = "hogehoge" 18 password = "hogehoge" 19 cookies = requests.post( 20 "hogehogeURL", 21 data={"account": "%s@%s" % (username, univ), 22 "password": password}).cookies 23 24 # Get results 25 res = requests.get( 26 "hogehogeURL", 27 cookies=cookies) 28 body = json.dumps(res.text) 29 r = HTTPResponse(status=200, body=body) 30 r.set_header('Content-Type', 'application/json') 31 r.set_header('Access-Control-Allow-Origin', '*') 32 return r 33 time.sleep(5) 34 35interval = 10 36while True: 37 api2() 38 time.sleep(interval) 39 40 41run(host='localhost', port=8000, debug=True) 42
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/08/01 01:26 編集
2018/08/01 04:12