1
그래서 서버를 만들고 요청을합니다. 모두 같은 파일에 있습니다.Gevent - SSL WSGIServer 블록이 없어야 할 때 차단합니다.
import gevent
import gevent.monkey
gevent.monkey.patch_all()
import requests
from gevent.pywsgi import WSGIServer
from flask import Flask
app = Flask(__name__)
app.debug = True
# Simple catch-all server
@app.route('/', defaults={'path': ''}, methods=['GET', 'POST'])
@app.route('/<path:path>', methods=['GET', 'POST'])
def catch_all(path):
return 'It is Working!'
if __name__ == '__main__':
http_server = WSGIServer(('', 8080), app)
srv_greenlet = gevent.spawn(http_server.start)
gevent.sleep(0.5)
resp = requests.get('http://127.0.0.1:8080/')
print resp.text
http_server.stop()
gevent.joinall([srv_greenlet])
출력 :
(py2sni)[email protected]$ python question.py
127.0.0.1 - - [2013-10-01 11:48:46] "GET/HTTP/1.1" 200 130 0.000614
It is Working!
그러나이 블록을, 그리고 외부 프로세스를 종료 할 수 있습니다
이 제대로 작동
import gevent
import gevent.monkey
gevent.monkey.patch_all()
import requests
from gevent.pywsgi import WSGIServer
from flask import Flask
app = Flask(__name__)
app.debug = True
# Simple catch-all server
@app.route('/', defaults={'path': ''}, methods=['GET', 'POST'])
@app.route('/<path:path>', methods=['GET', 'POST'])
def catch_all(path):
return 'It is Working!'
if __name__ == '__main__':
http_server = WSGIServer(('', 4430), app, keyfile='server.key', certfile='server.crt')
srv_greenlet = gevent.spawn(http_server.start)
gevent.sleep(0.5)
resp = requests.get('https://127.0.0.1:4430/')
print resp.text
http_server.stop()
gevent.joinall([srv_greenlet])
이 두 가지의 차이점을 스크립트는 SSL을 사용하고 다른 스크립트는 SSL을 사용하지 않는다는 것입니다. 여기서 나는 실수를 하나? 도움이된다면 gevent 0.13.8을 사용하고 있습니다. 2.0