gunicorn
Gunicorn server的最基本的命令,直接用来运行最基本的 wsgi application 。
用法:
1 gunicorn [OPTIONS] APP_MODULE
OPTIONS 可选参数 运行gunicorn的配置选项,后面会讲到。
APP_MODULE 指定 wsgi application文件,书写格式
(
M
O
D
U
L
E
N
A
M
E
)
:
(MODULE_NAME):
(MODULENAME):(VARIABLE_NAME)。
其中 module_name用来制定将要运行的 wsgi application文件,可是一个完整的点缀名。
比如当前目录 myapp 目录下有个 Python 包 gunicorn_app, gunicorn_app包下有一个wsgi application文件 test.py 则 module_name可以直接写成 gunicorn_app.test。
viriable_name表示在 module_name 文件中要调用的对象(是一个WSGI callable, 可以是一个函数,类详情参看WSGI规格说明书)名。
按照上面的例子,当前目录为 /home/user/myapp, myapp中有一个包 gunicorn_app,test.py代码如下:
# test.py
# -*- coding: utf-8 -*-
from flask import Flask, json, jsonify,make_response,request
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello World!'
# 返回json
@app.route('/foo')
def foo():
data ={
'ide':'Spyder',
'lang':'python'
}
response = jsonify(data)
response.status_code = 200
return response
# 返回json
@app.route('/get/<int:start>')
def get(start):
data = [1, 2, 3, 4, 5, 8, 9, 10, 11, 12, 15, 18, 200, 300, 800]
temp = [e for e in data if e > start]
s = str(temp)
print(data)
print(s)
return jsonify({'data': s}),200
#@app.route('/get',params={'code':},methods=['GET'])
#接受json输入参数
@app.route('/data' , methods=['GET', 'POST'])
def index():
if request.method == 'POST':
a = request.get_data()
dict1 = json.loads(a)
# 根据这个来进行调度数据 =>SQL操作
# return json.dumps(dict1["data"])
return json.dumps(dict1["data"])
else:
return '<h1>只接受post请求!</h1>'
我们将要运行 test.py文件中的 app(当然名字由你决定,可以是myapp,demo等等)
1 gunicorn gunicorn_app.test:app
命令中 module_name 为 gunicorn_app.test ;viriable_name为 app。
当然如果我们这样直接运行Gunicorn的话,Gunicorn的所有配置都是默认值,后面会讲到如何配置Gunicorn。