flask_route错误:AttributeError: 'function' object has no attribute 'route'
Posted 北门吹雪
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了flask_route错误:AttributeError: 'function' object has no attribute 'route'相关的知识,希望对你有一定的参考价值。
问题:
路由完全正确,当只有一个名为home的函数处理这个路由时候,下一个路由处理函数,总是提示没有这个rotue属性
Traceback (most recent call last): File "E:/workspace/wei-move/manage.py", line 3, in <module> from app import app File "E:\workspace\wei-move\app\__init__.py", line 10, in <module> from app.home import home as home_blueprint File "E:\workspace\wei-move\app\home\__init__.py", line 7, in <module> import app.home.views File "E:\workspace\wei-move\app\home\views.py", line 16, in <module> @home.route(‘/login/‘) AttributeError: ‘function‘ object has no attribute ‘route‘
问题原因:
本质是home函数名和@home装饰器有冲突,当取和装饰器或者对应的app一样的名字时候,只能对应一个home函数生效,后面的路由函数都将报错处理
# coding:utf8 from flask import render_template as render, redirect, url_for # render_template 返回模板 # redirect 路由重定向 # url_for 联合路由重定向,指向对应app的url地址 from . import home # 首页 @home.route(‘/‘) def home(): return render(‘home/index.html‘) # 登录页面 @home.route(‘/login/‘) def login(): return render(‘home/login.html‘)
那,如何解决这个问题?
由于函数名和路由装饰器名相同引起的错误,当把函数名和装饰路由相同的名字替换成其他名字,一定要娶和路由装饰器一样的名字需要在前面加个下划线,进行区分
# 首页 @home.route(‘/‘) def _home(): return render(‘home/index.html‘) # 登录页面 @home.route(‘/login/‘) def login(): return render(‘home/login.html‘)
以上是关于flask_route错误:AttributeError: 'function' object has no attribute 'route'的主要内容,如果未能解决你的问题,请参考以下文章
gwpy 包给出错误 - AttributeError:模块“matplotlib.pyplot”在 Google Colab 中没有属性“FigureManagerBase”
如何在 PyQt5 中返回 QlistWidget 中项目的值