zoukankan      html  css  js  c++  java
  • 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:workspacewei-moveapp\__init__.py", line 10, in <module>
        from app.home import home as home_blueprint
      File "E:workspacewei-moveapphome\__init__.py", line 7, in <module>
        import app.home.views
      File "E:workspacewei-moveapphomeviews.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')
  • 相关阅读:
    strpbrk — 在字符串中查找一组字符的任何一个字符
    strip_tags — 从字符串中去除 HTML 和 PHP 标记
    str_word_count — 返回字符串中单词的使用情况
    str_split — 将字符串转换为数组
    每日总结
    每日总结
    每日总结
    每日总结
    每日总结
    每日总结
  • 原文地址:https://www.cnblogs.com/2bjiujiu/p/7492534.html
Copyright © 2011-2022 走看看