2012-06-13 5 views
2

Я - разработчик, изучающий Django. Я довольно новичок в том, как все работает в Flask. Я получаю 404 со следующим кодом, когда я посещаю localhost:5000. Может кто-нибудь объяснить, почему я получаю это:Почему я получаю ошибку 404 в Flask?

Запрашиваемый URL-адрес не найден на сервере. Если вы указали URL вручную, проверьте правильность написания и повторите попытку.

from flask import Flask 
from flask.ext.sqlalchemy import SQLAlchemy 

from datetime import datetime 

app = Flask(__name__) 
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:////media/workdrive/workspace/purkinje/temp.db' 
app.debug = True 
db = SQLAlchemy(app) 

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

class Post(db.Model): 
    id = db.Column(db.Integer, primary_key=True) 
    title = db.Column(db.String(80)) 
    body = db.Column(db.Text) 
    pub_date = db.Column(db.DateTime) 

    category_id = db.Column(db.Integer, db.ForeignKey('category.id')) 
    category = db.relationship('Category', backref=db.backref('posts', lazy='dynamic')) 

    def __init__(self, title, body, category, pub_date=None): 
     self.title = title 
     self.body = body 
     if pub_date is None: 
      pub_date = datetime.utcnow() 
     self.pub_date = pub_date 
     self.category = category 

    def __repr__(self): 
     return '<Post %r>' % self.title 

class Category(db.Model): 
    id = db.Column(db.Integer, primary_key=True) 
    name = db.Column(db.String(50)) 

    def __init__(self, name): 
     self.name = name 

    def __repr__(self): 
     return '<Category %r> % self.name' 

@app.route('/') 
def index(): 
    posts = Post().query.all() 
    return render_template('templates/index.html', posts=posts) 

ответ

13

Вы звоните app.run() перед регистрацией обработчика. Вы должны переместить весь блок if __name__ == '__main__' в нижней части скрипта.

+0

Я полагал, что это было что-то простое. Благодаря! –

Смежные вопросы