Я только начал изучать Python и застрял с этой ошибкой. Я занимаюсь обучением и по какой-то причине не могу найти причину этой ошибки.
Есть идеи? Вот сценарии, в которых найдено «show_jobs»:
index.html
{% extends "layout.html" %}
<!doctype html>
{% block content %}
<div class="columns">
<div class="column">
<h1>Jobs</h1>
</div>
<div class="column is-one-fifth">
</div>
</div>
{{ show_jobs(jobs) }}
{% endblock %}
layout.html
{% from '_macros.html' import show_job, import with context %}
<!doctype html>
<html>
<head>
<title>Job Board</title>
<link rel="stylesheet" href="{{ url_for('static',
filename='css/bulma.min.css')}}">
<link rel="stylesheet" href="{{ url_for('static',
filename='css/app.css')}}">
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.2.0/css/all.css">
</head>
<body>
<div class="container top">
<div class="content">
{% block content %}
{% endblock %}
</div>
</div>
</body>
</html>
macros.html
{% macro show_job(job) %}
<div class="card adjust-height">
<header class="card-header">
<p class="card-header-title">
<a href="">{{ job['title'] }}</a>
</p>
</header>
<div class="card-content">
<div class="content">
<p>
<a href="">{{ job['employer_name'] }}</a><br>
${{ job['salary'] }}</br>
{{ job['description'] }}
</p>
</div>
</div>
</div>
{% endmacro %}
{% macro show_jobs(jobs) % }
<div class="column is-multiline">
{% for job in jobs %}
<div class="column is-half">
{{ show_job(job) }}
</div>
{% endmacro %}
Существует также app.py:
import sqlite3
from flask import Flask, render_template, g
PATH = 'db/jobs.sqlite'
app = Flask(__name__)
def open_connection():
connection = getattr(g, '_connection', None)
if connection == None:
connection = g._connection = sqlite3.connect(PATH)
connection.row_factory = sqlite3.Row
return connection
def execute_sql(sql, values=(), commit=False, single=False):
connection = open_connection()
cursor = connection.execute(sql,values)
if commit == True:
results = connection.commit()
else:
results = cursor.fetchone() if single else cursor.fetchall()
cursor.close()
return results
@app.teardown_appcontext
def close_connection(exeption):
connection = getattr(g, '_connection', None)
if connection is not None:
connection.close()
@app.route('/')
@app.route('/jobs')
def jobs():
jobs = execute_sql('SELECT job.id, job.title, job.description, job.salary, employer.id as employer.name as employer_name FROM job JOIN employer ON employer.id = job.employer_id')
return render_template('index.html', jobs=jobs)
Я пытался найти опечатки и следовал учебнику настолько хорошо, насколько это возможно, но, похоже, я не нашел решения для этого.