Ich bin Neuling in Kolben, möchte ich mysql Daten im Web zeigen.Aber es ist Unicode, so versuche ich zwei für die Lösung zu verwenden. Aber jetzt möchte ich wissen, der Grund, warum ich zwei for-Schleifen Unicode utf-8
Kolben CodeKolben zwei für Schleifen kodieren Unicode zu utf-8
#coding=utf-8
from flask import Flask, request, render_template
from flaskext.mysql import MySQL
mysql = MySQL()
app = Flask(__name__)
app.config['MYSQL_DATABASE_USER'] = 'root'
app.config['MYSQL_DATABASE_PASSWORD'] = ''
app.config['MYSQL_DATABASE_DB'] = 'test'
app.config['MYSQL_DATABASE_HOST'] = 'localhost'
mysql.init_app(app)
@app.route('/')
def showbookname():
cursor = mysql.get_db().cursor()
cursor.execute("SELECT * FROM manager ")
bookname = cursor.fetchall()
return render_template('book.html', bookname = bookname)
if __name__ == '__main__':
app.run(debug = True)
die falsche HTML
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
{{ bookname }}
</body>
</html>
das Ergebnis ((u'Tom',123'), (u'Mark', u'123'))
, mein erwartetes Ergebnis ist ((Tom,123),(Mark,123))
die richtige HTML (obwohl ich nicht mein Ziel erreichen.)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
{% for items in bookname %}
{% for item in items %}
{{ item }}
{% endfor %}
{% endfor %}
</body>
</html>
die Reasult Tom 123 Mark 123
.Es sind wie zwei sind for
Schleifen iterieren über die Tabelle und print
alle Daten
Dies hat nichts mit Unicode zu tun, aber wenn Sie die Methode 'cursor.fetchall()' verwenden, wird eine Liste von Tupeln zurückgegeben. So etwas wie: '[(..., ...), (..., ...)]'. Aus diesem Grund müssen Sie zuerst durch die "Liste" und dann durch das "Tupel" iterieren, um die erforderlichen Werte zu erhalten. –