1

私はフォーマット文字列で辞書を使用することに精通していますが、「辞書スタイルの文字列フォーマット」という用語は Django のドキュメントで RedirectView で URL を指定するために使用されているため、混乱しています。

具体的には、私は 1 つの URL を持っています:r'^(?P<school_slug>[\w-]+)/(?P<menu_type_slug>[\w-]+)/.pdf$' 私は非推奨であり、新しい URL に 301 (永続的に) リダイレクトしたいと考えて r'^(?P<school_slug>[\w-]+)/(?P<menu_type_slug>[\w-]+)/print/$'います。リダイレクト先のURLですが、「辞書スタイルの文字列フォーマット」に慣れていません。これを行うための適切な構文は何ですか?

4

2 に答える 2

1

これは、% 文字列書式設定演算子を使用する特定の方法を指します。

print "Hello, %(thing)s!" % {"thing": "world"}

"Hello, world!" を印刷します。

'/%(school_slug)s/%(menu_type_slug)s/print/' のようなリダイレクト URL を使用したい場合、リダイレクト ビューはキー 'school_slug' と 'menu_type_slug' を持つ kwargs 辞書を受け取り、それを % の引数として使用します。 .

于 2013-10-25T20:55:37.530 に答える
1

辞書のエントリを文字列に補間することにより、文字列をフォーマットすることを指します。

>>> params = {"server":"mpilgrim", "database":"master", "uid":"sa", "pwd":"secret"}
>>> "%(pwd)s" % params                                    1
'secret'

Django のドキュメントを正しく解釈すると、これを使用して URL クエリ パラメータを置き換えることができます。形式はkwd=value. パスのコンポーネントは置換できません。

于 2013-10-25T20:55:53.210 に答える