Python小白,想請教在座前輩——利用Python的tornado模塊,搭建一個web服務時啟動頁面不顯示的問題。代碼如下(代碼部分借鑒了"下班兒去看書"在知乎上的一篇回答地址為:https://zhuanlan.zhihu.com/p/30742302 侵權聯刪)


# -*- coding: utf-8 -*-
import sys
import importlib
importlib.reload(sys)
from reload import *
# windows 系統下 tornado 使用 使用 SelectorEventLoop
import platform
if platform.system() == "Windows":
import asyncio
asyncio.set_event_loop_policy(asyncio.WindowsSelectorEventLoopPolicy())
import pandas as pd
import tornado.ioloop
import tornado.web
#import json
import requests
lists = {u"深圳": "是經濟特區,緊鄰廣州,接壤香港,人口約1200萬",
u"青島": "旅游城市,瀕臨黃海,特產啤酒,人口約920萬"
}
def get_loc(city):
r = requests.get("http://api.map.baidu.com/geocoder?address=深圳市&output=json&key=37492c0ee6f924cb5e934fa08c6b1676&city=%E5%8C%97%E4%BA%AC%E5%B8%82" % city.encode('UTF-8'))
loc = r.json()
df = pd.DataFrame([loc])
str1 = df.loc[0, 'result']
str2 = pd.DataFrame([str1])
return print("深圳市的經緯度資訊為:")
return print(str2.loc[0, 'location'])
class BaseHandler(tornado.web.RequestHandler):
def get_current_user(self):
return self.get_secure_cookie("user")
class MainHandler(BaseHandler):
def get(self):
global greeting
if "id" in self.request.arguments:
greeting = self.get_argument('id', 'Hello')
if greeting in lists:
self.write(greeting + ": " + str(get_loc(greeting)) + "," + str(lists[greeting]))
else:
self.write("none")
settings = dict(cookie_secret="P1/V61oETzdkLmGeJJFuYh7Eo5KXQAGaYgEQnp2XdTo=", debug=True)
application = tornado.web.Application([(r"/", MainHandler), ], **settings)
if __name__ == "__main__":
application.listen(8086)
tornado.ioloop.IOLoop.current().start()
說明:1、中間運行報錯,求助度娘后解決了一些、主要問題源于原作者是基于Python2.0所作而我是在Python3.x所作故一些語法有變化。
2、原作者給予的查詢城市經緯度API介面已不可用、我通過其他介面加之處理可以輸出經緯度資訊但在撰寫web_server.py不知是否呼叫錯誤。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/38189.html
