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)
否则我完全按照教程。
答案 0 :(得分:4)
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
和blueprint
导入到运行一切的第三个文件:
# 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()