以Flask和MongoEngine为例的Tumblylog应用程序无法完全运行Novi

2024-04-30 04:03:57 发布

您现在位置:Python中文网/ 问答频道 /正文

MongoDB站点上的Tumblelog app不工作。在

我完全遵循了这个例子,当我在本地主机上运行它时,我得到了一个404错误。我在Ubuntu12.0.4上使用EclipseIndigo(3.7.2)和pyDev。在

我不确定是不是因为register_blueprints,我在__init__.py中包含了这个register_blueprints

我像教程中那样做了:

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)

否则我就完全按照教程来做了。在


Tags: namefromimportregisterconfigappflask站点
1条回答
网友
1楼 · 发布于 2024-04-30 04:03:57

在终止脚本之前,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,并将app和{}导入第三个文件,以运行所有内容:

^{pr2}$

# 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()

相关问题 更多 >