title: I don't need the run() method in a Flask application?
body: <p>I have a Flask application setup on my linode with a directory structure like so:</p>
  
  <pre><code>|--------flask-test
  |----------------app
  |-----------------------static
  |-----------------------templates
  |-----------------------venv
  |-----------------------__init__.py
  |-----------------------main.py
  </code></pre>
  
  <p>my <code>__init__.py</code> is:</p>
  
  <pre><code># __init__.py
  from flask import Flask
  from main import main
  app = Flask(__name__)
  app.register_blueprint(main)
  app.run()
  </code></pre>
  
  <p>and <code>main.py</code> like so:</p>
  
  <pre><code># main.py
  from flask import Blueprint
  
  main = Blueprint('main',__name__)
  @main.route("/")
  def hello():
      return "Hello World!"
  
  @main.route("/england/")
  def england():
      return "Hello England!"
  </code></pre>
  
  <p>If I run the app locally there are no issues. If I go to my server address in the web browser I get an internal server error. However if I remove the line: <code>app.run</code> from <code>__init__.py</code> it works fine. Why is this? Why do I not need the run method?</p>