# -*- coding:utf-8 -*-
import tornado.web
from tornado import gen
from tornado import options
from tornado.ioloop import IOLoop
from tornado.httpserver import HTTPServer
from tornado.web import Application, RequestHandler
class BaseHandler(RequestHandler):
"""
前后端分离,解决跨域问题
"""
def set_default_headers(self):
self.set_header("Access-Control-Allow-Origin", "*")
self.set_header("Access-Control-Allow-Headers", "*")#这里要填写上请求带过来的Access-Control-Allow-Headers参数,如access_token就是我请求带过来的参数
self.set_header("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE") #请求允许的方法
self.set_header("Content-Type", "application/json") #设置数据返回格式json
self.set_header("Access-Control-Max-Age", "3600")#用来指定本次预检请求的有效期,单位为秒,,在此期间不用发出另一条预检请求。
def options(self):
self.set_status(200)
self.finish()
class Test(BaseHandler):
@gen.coroutine
def get(self):
# 获取get方式的参数
user = self.get_query_argument("user",default=None,strip=True)
# 业务相关代码
self.write("真帅")
print("get方式获取参数:" + str(user))
def post(self):
# 获取post方式的参数
users = self.get_body_argument("users",default=None,strip=True)
print("post方式获取参数:" + str(users))
options.define(
name="port",
default=8888,
type=int,
help=None,
metavar=None,
multiple=False,
group=None,
callback=None
)
class Main(object):
def start(self):
app = Application(
[
(r"/test/", Test),
]
)
http_server = HTTPServer(app) # http_server实现多进程操作
#http_server.start(2) # 设置启动多少个进程
tornado.options.options.parse_command_line()
app.listen(options.options.port) # 端口
IOLoop.current().start() # 启动Ioloop轮循监听
if __name__ == "__main__":
l= Main()
l.start()
# get 请求
# 请求 http://127.0.0.1:8888/test/?user=xiaoming
# post的同理拿postman测试即可
tornado跨域之get、post请求
最新推荐文章于 2022-11-05 21:54:50 发布