码迷,mamicode.com
首页 > 其他好文 > 详细

flask_route错误:AttributeError: 'function' object has no attribute 'route'

时间:2017-09-08 01:16:18      阅读:221      评论:0      收藏:0      [点我收藏+]

标签:traceback   end   home   def   tee   html   space   redirect   错误   

问题:

  路由完全正确,当只有一个名为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'

标签:traceback   end   home   def   tee   html   space   redirect   错误   

原文地址:http://www.cnblogs.com/2bjiujiu/p/7492534.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!