Ich versuche, meine Python Flask App von 2.7 auf 3.5 zu konvertieren. Ich habe ein einfaches CMS-System mit SQLAlchemy, wo meine Seiten auf der Indexseite mit Titel und Inhalt angezeigt werden (die abgeschnitten sind). Dort ist mein Problem.Python 3.5 TypeError: ein Byte-ähnliches Objekt wird benötigt, nicht 'str' mit Truncate Filter
Es gibt meine Seiten als Liste und meine Inhalte als Zeichenfolge zurück. Ich habe versucht, die "Seiten" zu codieren, aber das gibt einen weiteren Fehler zurück, weil das für ein Listenobjekt nicht erlaubt ist.
Fehler:
File "C:\Python35\lib\site-packages\jinja2\filters.py", line 481, in do_truncate
result = s[:length - len(end)].rsplit(' ', 1)[0]
TypeError: a bytes-like object is required, not 'str'
Die Route:
@app.route("/")
def main():
pages = db.session.query(Pages).all()
return render_template('index.html', title='Dashboard', pages=pages)
index.html Seite
{% for page in pages %}
<div>
<a href="{{ url_for('view_page', page_id=page.id) }}"><h3>{{ page.title|truncate(150) }}</h3></a>
<p>{{ page.content|truncate(450)|striptags }}</p>
</div>
{% endfor %}
Also 'page.title' ist ein Byte-Objekt. Der 'truncate' Filter funktioniert nur für' str' Objekte. –