winserver2012服务器+python+flask+tornado+nginx实现一个简单的接口
------------恢复内容开始------------
1.本地创建两个python文件
app.py
server.py
(1)app.py使用flask实现路由跳转和数据的收发
from flask import Flask, jsonify from flask_cors import * app = Flask(__name__) # 用来实现cors跨域 CORS(app, supports_credentials=True, resources=r"/*") @app.route('/api/<page>', methods=['GET', 'POST']) def get_json_data(page): return jsonify(data2) data2 = [ { 'id': 1001, 'name': '张三', 'age': 18, 'dec': '一名优秀的前端工程师' }, { 'id': 1002, 'name': '李四', 'age': 19, 'dec': '一名特别优秀的前端工程师' }, { 'id': 1003, 'name': '王五', 'age': 20, 'dec': '一名优秀的前端工程师' } ] if __name__ == '__main__': app.run( host='0.0.0.0') # ip设置为0.0.0.0允许所有主机对这个接口进行访问
(2)在app.py同级下新建server.py
server.py使用tornado作为启动服务器,对需要的端口进行监听,将app.py文件交给tornado进行托管
from tornado.httpserver import HTTPServer # 提供HTTP服务 from tornado.wsgi import WSGIContainer # 提供WSGI服务 from app import app from tornado.ioloop import IOLoop # loop s = HTTPServer(WSGIContainer(app)) # tornado托管app s.listen(8080) # 监听8888端口 IOLoop.current().start() # 开启
2.在服务器上配置nginx
(1)下载nginx:http://nginx.org/en/download.html,通过此下载连接,下载稳定版本的nginx压缩包
(2)下载完成后将其解压缩到云服务器上
(3)解压完成后配置nginx.conf文件
server { listen 8080; # 配置监听的端口 server_name 106.52.40.160; # 服务器公网ip location / { root E:/myFlask; # 文件的根目录 } }
(4)启动nginx:start nginx.exe(注:如果启动时,nginx不是内部命令,请切换到nginx.exe所在的目录地址)
3.将app.py和server.py复制到服务器的E:/myFlask目录下
4.启动server.py文件,开启tornado本地服务,运行python server.py
注:(1) 启动之前服务器上必须安装好python flask tornado flask-cors
(2) 启动后,关闭cmd窗口会关闭tornado开启的服务,这里可以不关闭,如果想要在后台一直运行,可以开启win服务
(3)想要关闭时,可以直接关闭命令窗口
5.实验效果
(1)前端发送ajax请求
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>接口测试</title> </head> <body> <p></p> </body> <script> let xhr = new XMLHttpRequest() let data = null let p = document.querySelector('p') xhr.open('get', 'http://123.45.40.160:8080/api/1') xhr.send() xhr.onreadystatechange = function(){ if(xhr.readyState == 4 && xhr.status == 200){ data = JSON.parse(xhr.responseText) console.log(data); } } </script> </html>
(2)请求到的结果


浙公网安备 33010602011771号