TypeError:__ init __()得到了一个意外的关键字参数'method'

Hum*_*ang 5 python flask

好吧,我正在写一个烧瓶项目,但是当我试图python manage.py
追溯时,追溯告诉我:

Traceback (most recent call last):
  File "manage.py", line 5, in <module>
    from app import db,create_app
  File "/home/humbert/2017-sharing-backend/sharing/app/__init__.py", line 42, in <module>
    app.register_blueprint(main_blueprint, url_prefix='/main')
  File "/home/humbert/venv/local/lib/python2.7/site-packages/flask/app.py", line 64, in wrapper_func
    return f(self, *args, **kwargs)
  File "/home/humbert/venv/local/lib/python2.7/site-packages/flask/app.py", line 951, in register_blueprint
    blueprint.register(self, options, first_registration)
  File "/home/humbert/venv/local/lib/python2.7/site-packages/flask/blueprints.py", line 154, in register
    deferred(state)
  File "/home/humbert/venv/local/lib/python2.7/site-packages/flask/blueprints.py", line 173, in <lambda>
    s.add_url_rule(rule, endpoint, view_func, **options))
  File "/home/humbert/venv/local/lib/python2.7/site-packages/flask/blueprints.py", line 76, in add_url_rule
    view_func, defaults=defaults, **options)
  File "/home/humbert/venv/local/lib/python2.7/site-packages/flask/app.py", line 64, in wrapper_func
    return f(self, *args, **kwargs)
  File "/home/humbert/venv/local/lib/python2.7/site-packages/flask/app.py", line 1043, in add_url_rule
    rule = self.url_rule_class(rule, methods=methods, **options)
TypeError: __init__() got an unexpected keyword argument 'method'
Run Code Online (Sandbox Code Playgroud)

我认为我的manage.py是对的,我无法弄清楚错误.
错误的一部分__init__.py是:

from .main import main as main_blueprint
app.register_blueprint(main_blueprint, url_prefix='/main')

from .auth import auth as auth_blueprint
app.register_blueprint(auth_blueprint, url_prefix="/auth")

from . import views
Run Code Online (Sandbox Code Playgroud)

我真的需要一些帮助,谢谢!

Nic*_*der 14

我遇到了类似的问题.在我的代码中我有一行 @bp.route('/<init:id>/delete', method=('POST')) 关键字方法需要更改为方法(使用s)

  • 在尝试处理时,我的 todo Flask 项目也遇到了同样的问题: @app.route('/todos/create', method=['POST']) 您的答案通过添加 's' 帮助我解决问题: @app.route('/todos/create',methods=['POST']) 谢谢尼古拉斯·哈德。 (3认同)

kal*_*lya 7

我在代码中遇到了类似的问题,只需要将关键字“ method ” 更改为“ Methods ”:

@app.route('/login', methods = ['GET', 'POST'])
Run Code Online (Sandbox Code Playgroud)