flask app.register_blueprint报错

按照《FlaskWeb开发:基于Python的Web应用开发实战》开始学习的,之前运行没问题,最近修改了下modle模型和数据库,后来服务器就跑不起来了。 好像是register_blueprint报错,实在不明白有什么关系,代码检查了也看不出问题。

**Traceback (most recent call last):
  File "manage.py", line 8, in <module>
    app = create_app(os.getenv('FLASK_CONFIG') or 'default')
  File "/home/pi/Documents/myflasky/app/__init__.py", line 37, in create_app
    app.register_blueprint(main_blueprint)
  File "/home/pi/.local/lib/python2.7/site-packages/flask/app.py", line 64, in wrapper_func
    return f(self, *args, **kwargs)
  File "/home/pi/.local/lib/python2.7/site-packages/flask/app.py", line 951, in register_blueprint
    blueprint.register(self, options, first_registration)
  File "/home/pi/.local/lib/python2.7/site-packages/flask/blueprints.py", line 154, in register
    deferred(state)
  File "/home/pi/.local/lib/python2.7/site-packages/flask/blueprints.py", line 173, in <lambda>
    s.add_url_rule(rule, endpoint, view_func, **options))
  File "/home/pi/.local/lib/python2.7/site-packages/flask/blueprints.py", line 76, in add_url_rule
    view_func, defaults=defaults, **options)
  File "/home/pi/.local/lib/python2.7/site-packages/flask/app.py", line 64, in wrapper_func
    return f(self, *args, **kwargs)
  File "/home/pi/.local/lib/python2.7/site-packages/flask/app.py", line 1046, in add_url_rule
    self.url_map.add(rule)
  File "/home/pi/.local/lib/python2.7/site-packages/werkzeug/routing.py", line 1215, in add
    rule.bind(self)
  File "/home/pi/.local/lib/python2.7/site-packages/werkzeug/routing.py", line 687, in bind
    self.compile()
  File "/home/pi/.local/lib/python2.7/site-packages/werkzeug/routing.py", line 740, in compile
    _build_regex(self.is_leaf and self.rule or self.rule.rstrip('/'))
  File "/home/pi/.local/lib/python2.7/site-packages/werkzeug/routing.py", line 729, in _build_regex
    variable, converter, c_args, c_kwargs)
  File "/home/pi/.local/lib/python2.7/site-packages/werkzeug/routing.py", line 695, in get_converter
    raise LookupError('the converter %r does not exist' % converter_name)
LookupError: the converter 'init' does not exist**


源码:
app/__init__.py

23 def create_app(config_name):
 24     app = Flask(__name__)
 25     app.config.from_object(config[config_name])
 26     config[config_name].init_app(app)
 27 
 28     bootstrap.init_app(app)
 29     mail.init_app(app)
 30     moment.init_app(app)
 31     db.init_app(app)
 32     login_manager.init_app(app)
 33     pagedown.init_app(app)
 34 
 35     # 附加路由和自定义错误界面
 36     from .main import main as main_blueprint       
 37     app.register_blueprint(main_blueprint) #注释了就不报错,但是只能404
 38 
 39     from .auth import auth as auth_blueprint
 40     app.register_blueprint(auth_blueprint, url_prefix='/auth')
 41 
 42     return app

app/main/__init__.py

 1 # -*- coding:utf-8 -*-
  2 from flask import Blueprint #创建蓝本,功能和路由一样
  3 main = Blueprint('main', __name__)  # 实例化蓝本
  4 
  5 from . import views,errors # 一定要在末尾导入,避免循环导入以来
  6 from ..models import Permission
  7 
  8 @main.app_context_processor
  9 def inject_permissions():
 10     return dict(Permission=Permission)




阅读 5.2k
3 个回答

尝试了下,然而并看不出来什么原因,也没办法在本地复现出来。
所以方便的话贴个你源码的git地址或者打个压缩包吧。。

你查下试图里面。应该视图里某个路由出错了
@auth.route('/reset/<token>') 这样的。
如果有methods.等。()里面的参数写错了会报错。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题