我有一些关于烧瓶蓝图的麻烦
我的项目结构:
hw
...run.py
...sigcontoj
......__init__.py
......admin
.........__init__.py
.........views.py
.........models.py
......frontend
.........__init__.py
.........views.py
.........models.py
run.py:
from sigcontoj import create_app
from sigcontoj.frontend import frontend
app = create_app(__name__)
if __name__ == '__main__':
print app.url_map
print app.blueprints
app.run(debug = True)
sigcontoj__init __ PY:
from flask import Flask
from flask.ext.sqlalchemy import SQLAlchemy
from sigcontoj.frontend import frontend
db = SQLAlchemy()
def create_app(name=__name__):
app = Flask(name, static_path='/static')
app.register_blueprint(frontend, url_prefix=None)
app.secret_key = 'dfsdf1323jlsdjfl'
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///soj.db'
db.init_app(app)
return app
sigcontoj \ frontend__init __ PY:
from flask import Blueprint
frontend = Blueprint('frontend', __name__, template_folder='templates')
sigcontoj \前端\ models.py:
from datetime import datetime
from sigcontoj import db
class News(db.Model):
id = db.Column(db.Integer, primary_key=True)
title = db.Column(db.String(256))
content = db.Column(db.Text)
publish_time = db.Column(db.DateTime, default=datetime.now())
def __repr__(self):
return '<News : %s>' % self.title
sigcontoj \前端\ views.py:
from sigcontoj.frontend.models import News
from sigcontoj.frontend import frontend
@frontend.route('/')
def index():
news = News.query.all()[0:5]
return "hello world"
app.url_map
的输出是
Map([' (HEAD, OPTIONS, GET) -> static>])
索引页面是404。
我的代码中有错误吗?
答案 0 :(得分:3)
您遇到的问题是,即使您导入frontend
蓝图,因为您从未导入views
,index
(/
)路由也从未注册{{1 }}。如果您更新frontend
以导入sigcontoj/__init__.py
:
sigcontoj.frontend.views
那么一切都应该有效。