web-dev-qa-db-ja.com

pythonボトルアプリでGET変数を取得する方法

REST apiを使用してPythonボトルアプリを作成しています。リクエストグローバルオブジェクトからGET変数を取得する際に問題が発生しています。GETリクエストからこれを取得する方法の提案はありますか?

20
Maanas Royy

これらは_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()
_
24

それらすべてが必要な場合:

dicc = parse_qs(request.query_string)

必要な場合:

one = request.GET.get('one', '').strip()
5
f p

これを試してください:

この例の場合: http:// localhost:8080/command?param_name = param_value

あなたのコードで:

param_value = request.query.param_name
0
madkabx

ドキュメントから

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を切り替える必要はありません。

0
comte