.. _tutorial: Tutorial ======== .. toctree:: :caption: Contents: :maxdepth: 1 layout factory database views templates static blog install tests deploy next This tutorial will walk you through creating a basic blog application called Flaskr, where users will be able to register, log in, create posts, and edit or delete their own posts. You will be able to package and install the application on other computers. .. image:: flaskr_index.png :align: center :class: screenshot :alt: screenshot of index page You must be familiar with Python first. Refer to the `official tutorial`_ in the Python docs if needed. .. _official tutorial: https://docs.python.org/3/tutorial/ Even though this tutorial is designed to give a good starting point, it doesn't cover all of Flask's features. Check out the :ref:`quickstart` for an overview of what Flask can do, and then dive into the docs to find out more. The tutorial only uses what's provided by Flask and Python. In another project, you might decide to use :ref:`extensions` or other libraries to make some tasks simpler. .. image:: flaskr_login.png :align: center :class: screenshot :alt: screenshot of login page Flask is flexible. It doesn't require you to use any particular project or code layout. However, when first starting, it's helpful to use a structured approach. This means that the tutorial will require a bit of boilerplate up front, but this boilerplate is done to avoid common pitfalls that new developers encounter. This tutorial creates a project that's easy to expand. Once you become more comfortable with Flask, you can step out of this structure and take full advantage of Flask's flexibility. .. image:: flaskr_edit.png :align: center :class: screenshot :alt: screenshot of login page :gh:`The tutorial project is available as an example in the Flask repository `, if you want to compare your project with the final product as you follow the tutorial. Continue to :doc:`layout`.