报错情况: AttributeError: 'function' object has no attribute 'route'
问题:
路由完全正确,当只有一个名为home的函数处理这个路由时候,下一个路由处理函数,总是提示没有这个rotue属性
D:Virtualenvsmovie_proScriptspython.exe D:/pytharm/python项目/movie_pro/manage.py Traceback (most recent call last): File "D:/pytharm/python项目/movie_pro/manage.py", line 1, in <module> from app import app File "D:pytharmpython项目movie_proapp\__init__.py", line 7, in <module> from app.home import home as home_blueprint File "D:pytharmpython项目movie_proapphome\__init__.py", line 5, in <module> import app.home.views File "D:pytharmpython项目movie_proapphomeviews.py", line 17, in <module> @home.route('/login/')
问题原因:
本质是home函数名和@home装饰器有冲突,当取和装饰器或者对应的app一样的名字时候,只能对应一个home函数生效,后面的路由函数都将报错处理
解决问题:
由于函数名和路由装饰器名相同引起的错误,当把函数名和装饰路由相同的名字替换成其他名字,一定要娶和路由装饰器一样的名字需要在前面加个下划线,进行区分
from . import home from flask import render_template, redirect, url_for from flask import Flask # # app = Flask(__name__) # 业务主页 @home.route('/') def index(): return render_template("home/index.html") # 影视主页 @home.route('/home/') def _home(): return render_template("home/index1.html")