0

Python および Jinja2 (Flask 経由) を介して Web ページに配置するオートコンプリート関数リストを作成しようとしています。

データ:

 data_list=['router1 | location - tx | model A | xxserialxx | 10.0.0.1 | ',
 'router2 | location - mo | model A | xxserialxx | 10.0.0.2 | ',
 'router3 | location - ca | model B | xxserialxx | 10.0.0.3 | ',
 'router4 | location - fl | model A | xxserialxx | 10.0.0.4 | ',
 'router5 | location - ny | model B | xxserialxx | 10.0.0.5 | ']

これは、私のテンプレートに付属しているデフォルトの外観です。

<input class="form-control" placeholder="Type something..." type="text"
        data-autocomplete='[
        "ActionScript",
        "AppleScript",
        "Asp",
        "BASIC",
        "C",
        "C++",
        "Clojure",
        "COBOL",
        "ColdFusion",
        "Erlang",
        "Fortran",
        "Groovy",
        "Haskell",
        "Java",
        "JavaScript",
        "Lisp",
        "Perl",
        "PHP",
        "Python",
        "Ruby",
        "Scala",
        "Scheme"]'>

私は試した:

<input class="form-control" placeholder="Type something..." type="text"
        data-autocomplete='[{% for item in data_list %}
        "{{item}},"]' {% endfor %}>

そして何も起こりません.HTMLをロードすると、「data-autocomplete=」は何もありません..

これの論理は間違いなく間違っていることがわかります。

Jinja を使用して for ループを構造のようなリストに入れる方法に関するドキュメントはあまり見つかりませんでした。

これは完全に間違った方法だと思います。ヘルプ?

望ましい出力:

<input class="form-control" placeholder="Type something..." type="text"
        data-autocomplete='[
        "router1 | location - tx | model A | xxserialxx | 10.0.0.1 | ",
        "router2 | location - mo | model A | xxserialxx | 10.0.0.2 | ",
        "router3 | location - ca | model B | xxserialxx | 10.0.0.3 | ",
        "router4 | location - fl | model A | xxserialxx | 10.0.0.4 | ",
        "router5 | location - ny | model B | xxserialxx | 10.0.0.5 | ",]'>
4

1 に答える 1

1

join メソッドを使用でき、for ループも必要ありません。これを試して:

data-autocomplete="{{'[' + ','.join(data_list) + ']'}}"
于 2014-10-05T00:39:19.693 に答える