次のようにフラスコアプリを開始します。
#!flask/bin/python
from app import app_instance
from gevent.pywsgi import WSGIServer
#returns and instance of the application - using function to wrap configuration
app = app_instance()
http_server = WSGIServer(('',5000), app)
http_server.serve_forever()
そして、このコードを実行しようとすると、元のリクエストがタイムアウトするまでリクエスト呼び出しがブロックされます。基本的に、同じフラスコアプリで Web サービスを呼び出しています。私はgeventについて何を誤解していますか? I/O イベントが発生したとき、スレッドは譲歩しませんか?
@webapp.route("/register", methods=['GET', 'POST'])
def register():
form = RegistrationForm(request.form, csrf_enabled=False)
data = None
if request.method == 'POST' and form.validate():
data= {'email': form.email, 'auth_token': form.password,
'name' : form.name, 'auth_provider' : 'APP'}
r = requests.post('http://localhost:5000', params=data)
print('status' + str(r.status_code))
print(r.json())
return render_template('register.html', form=form)