У меня есть некоторые проблемы с отображением значения из другой таблицы (это было бы легче понять с помощью приведенного ниже кода):
contact.py
def index():
db = get_db()
contacts = db.execute(
'SELECT *'
' FROM contact INNER JOIN branche ON contact.branche_id = branche.branche_id'
' ORDER BY contact.nom ASC'
).fetchall()
return render_template('contact/index.html', contacts=contacts)
templates / contact / index.html
<table class="table table-hover">
<thead class="thead-light">
<th>Nom</th>
<th>Prénom</th>
<th>Adresse Mail</th>
<th>Code Postal</th>
<th>Ville</th>
<th>Téléphone Portable</th>
<th>Branche</th>
</thead>
<tbody>
<div class="col-md-4">
<div class="form-group">
<div runat="server" id="div_columns" >
{% for contact in contacts %}
<tr>
<td>{{ contact['nom'] }}</td>
<td>{{ contact['prenom'] }}</td>
<td>{{ contact['telportable'] }}</td>
<td>{{ contact['adressemail'] }}</td>
<td>{{ contact['codepostal'] }}</td>
<td>{{ contact['ville'] }}</td>
<td>{{ contact['telportable'] }}</td>
<td>{{ branche['branche_nom'] }}</td>
<td>
<a class="btn"><i class="fas fa-pencil-alt"></i></a>
<a class="btn text-danger "><i class="fa fa-trash fa-lg"></i></a>
</td>
</tr>
{% endfor %}
<hr>
</div>
</div>
</div>
</tbody>
</table>
schema.sql
DROP TABLE IF EXISTS contact;
DROP TABLE IF EXISTS branche;
CREATE TABLE contact (
id INTEGER PRIMARY KEY AUTOINCREMENT,
nom TEXT NOT NULL,
prenom TEXT NOT NULL,
adressemail TEXT NOT NULL,
adressepostale TEXT NOT NULL,
codepostal INTEGER NOT NULL,
ville TEXT NOT NULL,
telfixe INTEGER NOT NULL,
telportable INTEGER NOT NULL,
branche_id INTEGER NOT NULL,
FOREIGN KEY (branche_id) REFERENCES branche (branche_id)
);
CREATE TABLE branche (
branche_id INTEGER PRIMARY KEY AUTOINCREMENT,
branche_nom TEXT UNIQUE NOT NULL
);
Все, что я хочу сделать, это распечатать контакт информации (имя, номер телефона, ...), и есть одна информация, которая не находится внутри contact
таблицы, это branche_nom
в таблице branche
, так где же моя ошибка? У меня нет никаких ошибок в терминальном компьютере или терминале браузера
PS: когда я отключаю отображение branche_nom
, все строки, хранящиеся в БД, печатаются, у меня просто ничего нет, я хочу использовать другую таблицу
РЕДАКТИРОВАНИЕ 1: Загрузка branche
таблица
contact.py
def index():
db = get_db()
contacts = db.execute(
'SELECT contact.nom, contact.prenom, contact.adressemail, contact.codepostal, contact.ville, contact.telportable, branche.branche_nom'
' FROM contact INNER JOIN branche ON contact.branche_id = branche.branche_id'
' ORDER BY contact.nom ASC'
).fetchall()
branches = db.execute(
'SELECT branche_nom'
' FROM branche INNER JOIN contact ON contact.branche_id = branche.branche_id'
).fetchall()
return render_template('blog/index.html', contacts=contacts, branches=branches)
Снимок экрана Branche List
:

РЕДАКТИРОВАТЬ2: дБ.py
import sqlite3
import click
from flask import current_app, g
from flask.cli import with_appcontext
def init_app(app):
app.teardown_appcontext(close_db)
app.cli.add_command(init_db_command)
def init_db():
db = get_db()
with current_app.open_resource('schema.sql') as d:
db.executescript(d.read().decode('utf8'))
@click.command('init-db')
@with_appcontext
def init_db_command():
"""Clear the existing data and create new tables."""
init_db()
click.echo('Initialized the database.')
def get_db():
if 'db' not in g:
g.db = sqlite3.connect(
current_app.config['DATABASE'],
detect_types=sqlite3.PARSE_DECLTYPES
)
g.db.row_factory = sqlite3.Row
return g.db
def close_db(e=None):
db = g.pop('db', None)
if db is not None:
db.close()