REST apiを使用してPythonボトルアプリを作成しています。リクエストグローバルオブジェクトからGET変数を取得する際に問題が発生しています。GETリクエストからこれを取得する方法の提案はありますか?
これらは_request.query
_オブジェクトに格納されます。
http://bottlepy.org/docs/dev/tutorial.html#query-variables
_request.query
_属性をディクショナリのように扱うことで、それらにもアクセスできるようです。
_request.query['city']
_
したがって、dict(request.query)
はすべてのクエリパラメータの辞書を作成します。
@mklauberが注記しているように、これはマルチバイト文字に対しては機能しません。最適な方法は次のとおりです。
_my_dict = request.query.decode()
_
それらすべてが必要な場合:
dicc = parse_qs(request.query_string)
必要な場合:
one = request.GET.get('one', '').strip()
これを試してください:
この例の場合: http:// localhost:8080/command?param_name = param_value
あなたのコードで:
param_value = request.query.param_name
ドキュメントから
name = request.cookies.name
# is a shortcut for:
name = request.cookies.getunicode('name') # encoding='utf-8' (default)
# which basically does this:
try:
name = request.cookies.get('name', '').decode('utf-8')
except UnicodeError:
name = u''
したがって、request.query.get( 'variable_name')よりも属性アクセサー(request.query.variable_name)を使用することをお勧めします
もう1つのポイントは、GETメソッドとPOSTメソッドの両方で機能するrequest.params.variable_nameを使用できることです。GET/ POSTに応じてrequest.query.variable_nameまたはrequest.forms.variable_nameを切り替える必要はありません。