example04.py 984 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. """
  2. example04.py - 同步请求的例子
  3. """
  4. import json
  5. import os
  6. import requests
  7. import tornado.gen
  8. import tornado.ioloop
  9. import tornado.web
  10. import tornado.websocket
  11. import tornado.httpclient
  12. from tornado.options import define, options, parse_command_line
  13. define('port', default=8888, type=int)
  14. REQ_URL = 'http://api.tianapi.com/guonei/'
  15. API_KEY = '772a81a51ae5c780251b1f98ea431b84'
  16. class MainHandler(tornado.web.RequestHandler):
  17. """自定义请求处理器"""
  18. def get(self):
  19. resp = requests.get(f'{REQ_URL}?key={API_KEY}')
  20. newslist = json.loads(resp.text)['newslist']
  21. self.render('news.html', newslist=newslist)
  22. def main():
  23. """主函数"""
  24. parse_command_line()
  25. app = tornado.web.Application(
  26. handlers=[(r'/', MainHandler), ],
  27. template_path=os.path.join(os.path.dirname(__file__), 'templates'),
  28. )
  29. app.listen(options.port)
  30. tornado.ioloop.IOLoop.current().start()
  31. if __name__ == '__main__':
  32. main()