【问题标题】:Flask Error: typeerror run() got an unexpected keyword argument 'host'烧瓶错误:typeerror run() 得到了一个意外的关键字参数“主机”
【发布时间】:2013-04-18 05:12:53
【问题描述】:

我用 Flask 在 vi​​rtualbox 上建立了一个网站。该网站可以在localhost上打开,但是我无法通过端口转发打开它,所以我将代码从manage.run()更改为manage.run(host='0.0.0.0')

问题是我收到了这个错误:

typeerror run() got an unexpected keyword argument 'host'. 

manage.run() 更改为manage.run(debug=True) 时出现类似错误。我只是按照 Flask 文档进行操作。http://flask.pocoo.org/docs/quickstart/#a-minimal-application 谁能告诉我为什么我会收到这个错误?

#!/usr/bin/env python
#-*- coding:utf-8 -*-

"""Manage Script."""

from sys import stderr, exit

from flask.ext.script import Manager, prompt_bool

from szupa import create_app
from szupa.extensions import db
from szupa.account.models import User
from szupa.context import create_category_db


app = create_app()
manager = Manager(app)


@manager.command
def initdb():
    """Initialize database."""
    db.create_all()
    create_category_db()


@manager.command
def migrate(created, action="up"):
    module_name = "migrates.migrate%s" % created
    try:
        module = __import__(module_name, fromlist=["migrates"])
    except ImportError:
        print >> stderr, "The migrate script '%s' is not found." % module_name
        exit(-1)
    if prompt_bool("Confirm to execute migrate script '%s'" % module_name):
        try:
            action = getattr(module, action)
        except AttributeError:
            print >> stderr, "The given action '%s' is invalid." % action
            exit(-1)
        action(db)
        print >> stderr, "Finished."


@manager.command
def dropdb():
    """Drop database."""
    if prompt_bool("Confirm to drop all table from database"):
        db.drop_all()


@manager.command
def setadmin(email):
    """Promote a user to administrator."""
    user = User.query.filter_by(email=email).first()
    if not user:
        print >> stderr, "The user with email '%s' could not be found." % email
        exit(-1)
    else:
        user.is_admin = True
        db.session.commit()


if __name__ == "__main__":
    manager.run()

【问题讨论】:

  • 很高兴您找到了解决方案!您可以发布一个答案,解释您如何解决它并链接到该页面。它会帮助任何有同样问题并遇到这篇文章的人。这是working version of the link

标签: python frameworks flask


【解决方案1】:

正如@fangwz0577 在评论中所说,他们使用manager.add_command 解决了这个问题。他们的链接的存档版本是here

接下来,创建 manage.py 文件。使用此文件加载其他 未来的烧瓶脚本。 Flask-scripts 提供了一个开发 服务器和外壳:

from flask.ext.script 导入管理器,服务器
从 tumblelog 导入应用程序

经理=经理(应用程序)

 # 默认开启调试器并重新加载
manager.add_command(“运行服务器”,服务器(
    use_debugger = 真,
    use_reloader = 真,
    主机 = '0.0.0.0') )

【讨论】:

  • 我不知道烧瓶,所以如果有人想写一个更好的答案,请做。我只是发布此内容以引用相关部分并使用工作链接来保留@fangwz0577 评论中的信息。
猜你喜欢
  • 1970-01-01
  • 2016-09-17
  • 1970-01-01
  • 1970-01-01
  • 2020-11-15
  • 2017-05-10
  • 1970-01-01
  • 2012-12-11
相关资源
最近更新 更多