繁体   English   中英

如何在 Python Flask 中的一行中打印字符串列表

[英]How to print list of string in one line in Python Flask

我有这个列表,在 Python 文件(Google Colab)中生成

pitch_dataset = 
['0', 'G#3 / Ab3', 'A#3 / Bb3', 'B3', 'C4', 'C#4 / Db4', 'D4', 'D#4 / Eb4', 'E4', 'F4', 'F#4 / Gb4', 'G4']

我想在我的 HTML output 页面中打印没有[]' '列表。

0, G#3 / Ab3, A#3 / Bb3, B3, C4, C#4 / Db4, D4, D#4 / Eb4, E4, F4, F#4 / Gb4, G4]

但是,通过使用此代码:

<div class="form-group row">
            <label for="detected_pitch" class="col-sm-2 col-form-label">Pitch from dataset: </label>
            <div class="col-sm-10" style="padding-top: 8px">                
                {% for i in pitch_dataset: %}
                    {% print(i, end=", ") %}
                {% endfor %}
            </div>
</div>

我收到了这个错误

[2021-03-26 14:14:12,584] ERROR in app: Exception on /usertest [POST]
Traceback (most recent call last):
  File "/usr/local/lib/python3.7/dist-packages/flask/app.py", line 2447, in wsgi_app
    response = self.full_dispatch_request()
  File "/usr/local/lib/python3.7/dist-packages/flask/app.py", line 1952, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "/usr/local/lib/python3.7/dist-packages/flask/app.py", line 1821, in handle_user_exception
    reraise(exc_type, exc_value, tb)
  File "/usr/local/lib/python3.7/dist-packages/flask/_compat.py", line 39, in reraise
    raise value
  File "/usr/local/lib/python3.7/dist-packages/flask/app.py", line 1950, in full_dispatch_request
    rv = self.dispatch_request()
  File "/usr/local/lib/python3.7/dist-packages/flask/app.py", line 1936, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "<ipython-input-35-e88c3eaabc23>", line 4, in no_cache
    response = make_response(view(*args, **kwargs))
  File "<ipython-input-56-21918cccddbd>", line 42, in usertest
    return render_template('/usertest.html', song_title=song_title, page_title=page_title, pitch_dataset=pitch_dataset, pitch_class=pitch_class, distance=distance)
  File "/usr/local/lib/python3.7/dist-packages/flask/templating.py", line 138, in render_template
    ctx.app.jinja_env.get_or_select_template(template_name_or_list),
  File "/usr/local/lib/python3.7/dist-packages/jinja2/environment.py", line 930, in get_or_select_template
    return self.get_template(template_name_or_list, parent, globals)
  File "/usr/local/lib/python3.7/dist-packages/jinja2/environment.py", line 883, in get_template
    return self._load_template(name, self.make_globals(globals))
  File "/usr/local/lib/python3.7/dist-packages/jinja2/environment.py", line 857, in _load_template
    template = self.loader.load(self, name, globals)
  File "/usr/local/lib/python3.7/dist-packages/jinja2/loaders.py", line 127, in load
    code = environment.compile(source, name, filename)
  File "/usr/local/lib/python3.7/dist-packages/jinja2/environment.py", line 638, in compile
    self.handle_exception(source=source_hint)
  File "/usr/local/lib/python3.7/dist-packages/jinja2/environment.py", line 832, in handle_exception
    reraise(*rewrite_traceback_stack(source=source))
  File "/usr/local/lib/python3.7/dist-packages/jinja2/_compat.py", line 28, in reraise
    raise value.with_traceback(tb)
  File "/content/./drive/MyDrive/1117002_Code Skripsi/FlaskUI/templates/usertest.html", line 23, in template
    {% print(i, end=", ") %}
jinja2.exceptions.TemplateSyntaxError: expected token ')', got '='

有没有其他方法可以做到这一点? 我已经尝试了在这里找到的所有代码,但没有一个运行良好。

如果将列表转换为字符串怎么办?

pitch_dataset_string = ', '.join(pitch_dataset)

在模板中,您可以执行以下操作:

<div class="form-group row">
            <label for="detected_pitch" class="col-sm-2 col-form-label">Pitch from dataset: </label>
            <div class="col-sm-10" style="padding-top: 8px">                
                {{ pitch_dataset_string }}
            </div>
</div>

正确的版本是:

<div class="form-group row">
    <label for="detected_pitch" class="col-sm-2 col-form-label">Pitch from dataset: </label>
        <div class="col-sm-10" style="padding-top: 8px">                
            {% for i in pitch_dataset %}
                {{ i }}{% if not loop.last %}, {% endif %}
            {% endfor %}
        </div>
</div>

请注意,Jinja2 不是 Python,尽管受到它的启发。 看看文档: https://jinja.palletsprojects.com/en/2.11.x/templates/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM