【问题标题】:Tumblelog Application with Flask and MongoEngine example does not work - Complete Novice带有 Flask 和 MongoEngine 示例的 Tumblelog 应用程序不起作用 - 完成新手
【发布时间】:2012-10-03 17:27:36
【问题描述】:

MongoDB 网站上的Tumblelog app 不起作用。

我完全按照示例进行操作,但在本地主机上运行它时出现 404 错误。我在 Ubuntu 12.0.4 上使用 Eclipse Indigo (3.7.2) 和 pyDev。

我不确定是不是因为register_blueprints,我将它包含在__init__.py

我在教程中是这样做的:

from flask import Flask
from flask.ext.mongoengine import MongoEngine

app = Flask(__name__)
app.config["MONGODB_DB"] = "my_tumble_log"
app.config["SECRET_KEY"] = "KeepThisS3cr3t"

db = MongoEngine(app)


if __name__ == '__main__':
    app.run()


    def register_blueprints(app):
    # Prevents circular imports
        from tumblelog.views import posts
        app.register_blueprint(posts)
    register_blueprints(app)

否则我完全按照教程进行操作。

【问题讨论】:

    标签: python mongodb flask


    【解决方案1】:

    register_blueprints 永远不会被调用 - app.run 会阻塞,直到您终止脚本(此时没有必要添加路由)。

    更改顺序,一切都会运行:

    def register_blueprints(app):
    # Prevents circular imports
        from tumblelog.views import posts
        app.register_blueprint(posts)
    
    register_blueprints(app)
    
    if __name__ == '__main__':
        app.run()
    

    regist_blueprints 实际上并没有阻止循环导入 - 避免循环导入的模式是在不同的文件中创建 app 并将 appblueprint 导入第三个文件以运行所有内容:

    #  application.py
    from flask import Flask  # etc.
    
    app = Flask("your_package_name")
    

     

    # tumblelog/views.py
    from flask import Blueprint, current_app  # etc.
    
    posts = Blueprint("tumblelog")
    
    @posts.route("/")
    def index():
        # use current_app rather than app here
    

     

    # run_server.py (use the same pattern for .wsgi files)
    from application import app
    from tumblelog.views import posts
    
    app.register_blueprint(posts)
    
    if __name__ == "__main__":
        app.run()
    

    【讨论】:

    • 我已经按照你说的更改了顺序,现在似乎可以正常工作了。非常感谢
    猜你喜欢
    • 2015-06-08
    • 2015-06-13
    • 2019-09-17
    • 1970-01-01
    • 2014-05-15
    • 2022-01-11
    • 1970-01-01
    • 2013-07-31
    • 1970-01-01
    相关资源
    最近更新 更多