Pythonの上の辞書に質量参加を散乱

実際の開発では、我々は多くの場合、データベースにチェックインした後、利用者から提出された運用データに遭遇します。
Customerテーブルにフォームの送信データを投稿するユーザーフォームを仮定し、受信した背景データは、多くの場合、処理することにより行われます。

# 将csrf校验的键值对去除
request.POST.pop("csrfmiddlewaretoken")
# 以打散的方式将数据传入数据库的表中
Customer.objects.update_or_create(**request.POST)

私たちが知っている、request.POSTは、QueryDict実際にはそれが習慣で、ターゲット字典ことに注意することは、時間を変更するだけでなく、不可变特性私たちは辞書として使用することができたときにパラメータを渡す時以外を。
しかし、また、それがこの「別れる」アプローチは、質量参加必要であることを指摘し字典、すべての内のが、keyデータベースフィールド内のテーブルの名前と一致していなければなりません!それ以外の場合は、パラメータの受け渡しは、エラーが発生したときに!

辞書散乱パラメータ渡しのメカニズムを説明するための小さなデモ

そこで質問です:これは打散、それが何であるかのメカニズム方法はありますか?
次の例を考えてみます。

def func(username,password):
    global count
    print(count,username,password)
    count += 1

if __name__ == '__main__':
    count = 1
    dic = {"username":'whw','password':123}
    # 打散传参与位置参数传参
    func(**dic)
    func(username='whw',password=123)

次のような結果の実装は以下のとおりです。

1 whw 123
2 whw 123

まず、関数を定義してみましょうfunc2つの位置パラメータのユーザ名とパスワードがあり、その後、辞書を定義しdic={"username":"whw","password":123}、カウンタとして使用する変数を数えます。
我々は機能を実行するときに、funcがパラメータを渡すには二つの方法を使用:一種類だけ**dic殴らDIC、ある道を、;他のパラメータを渡すための従来の方法です。
両方の方法が正常に行わ二上述の伝送パラメータは、と等価です!
言い換えれば、**dic辞書は打散の一つとなったkey=value形!
また、必要がポイントに特別な注意を払う:辞書のためのこのパラメータの受渡しモードキーは位置パラメータ関数の値と一致する必要があり、辞書は殴られたキーの値を要求され、それ以外のプログラムが文句を言うでしょう!

おすすめ

転載: www.cnblogs.com/paulwhw/p/11328628.html