title: Why am I getting 404 error in Flask?
body: <p>I'm a Django developer learning Flask. I'm pretty new to how things work in Flask. I'm getting a 404 with the following code when I visit <code>localhost:5000</code>. Could someone explain why I'm getting this:</p>
  
  <p><em>The requested URL was not found on the server.
  If you entered the URL manually please check your spelling and try again.</em></p>
  
  <pre><code>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 '&lt;Post %r&gt;' % 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 '&lt;Category %r&gt; % self.name'
  
  @app.route('/')
  def index():
      posts = Post().query.all()
      return render_template('templates/index.html', posts=posts)
  </code></pre>