首页 > 解决方案 > 如何修复 IndentationError

问题描述

flask几天前我从电子书烧瓶框架食谱开始学习。我对以下错误感到困惑。

File "run.py", line 1, in <module>
  from my_app import app
File "/home/kenosis/flask_app/my_app/__init__.py", line 2, in <module>
  from my_app.product.views import product_blueprint
File "/home/kenosis/flask_app/my_app/product/views.py", line 10
   def home():
   ^
IndentationError: unexpected indent

这是我的views.py

from werkzeug import abort
from flask import render_template
from flask import Blueprint
from my_app.product.models import PRODUCTS
product_blueprint = Blueprint('product', __name__)
@product_blueprint.route('/')
@product_blueprint.route('/home')
    def home():
        return render_template('home.html', products=PRODUCTS)
@product_blueprint.route('/product/<key>')
    def product(key):
        product = PRODUCTS.get(key)
        if not product:
            abort(404)
        return render_template('product.html', product=PRODUCTS)

然后这是我的初始化

from flask import Flask
from my_app.product.views import product_blueprint
app = Flask(__name__)
app.register_blueprint(product_blueprint)
product_blueprint = Blueprint('main', __name__, template_folder='templates')

我究竟做错了什么?

标签: python

解决方案


缩进在 Python 中非常重要。装饰器后不要缩进

from flask import render_template, abort
from flask import Blueprint
from my_app.product.models import PRODUCTS

product_blueprint = Blueprint('product', __name__)

@product_blueprint.route('/')
@product_blueprint.route('/home')
def home():
    return render_template('home.html', products=PRODUCTS)

@product_blueprint.route('/product/<key>')
def product(key):
    product = PRODUCTS.get(key)
    if not product:
        abort(404)
    return render_template('product.html', product=PRODUCTS)

推荐阅读