私はフラスコの初心者ですが、私はウェブで表示するmysqlデータを取得したいです。しかし、それはユニコードなので解決するために2つ使用してみてください。私はUTF-8
フラスココードフラスコ2 forループはユニコードから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)
間違ったHTML
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
{{ bookname }}
</body>
</html>
結果((u'Tom',123'), (u'Mark', u'123'))
、私の予想結果は((Tom,123),(Mark,123))
正しいHTMLである
<!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>
reasultはTom 123 Mark 123
.ITの2のようですfor
ループがテーブル全体を反復処理し、print
すべてのデータ
これはunicodeとは関係ありませんが、 'cursor.fetchall()'メソッドを使うと、タプルのリストを返します。このようなもの: '[(...、...)、(...、...)]'。このため、最初に 'list'を反復し、次に' tuple'を使って必要な値を取得する必要があります。 –