No description
Find a file
pgjones 7f87f3dd93
Simplify the async handling code
Firstly `run_sync` was a misleading name as it didn't run anything,
instead I think `async_to_sync` is much clearer as it converts a
coroutine function to a function. (Name stolen from asgiref).

Secondly trying to run the ensure_sync during registration made the
code more complex and brittle, e.g. the _flask_async_wrapper
usage. This was done to pay any setup costs during registration rather
than runtime, however this only saved a iscoroutne check. It allows
the weirdness of the Blueprint and Scaffold ensure_sync methods to be
removed.

Switching to runtime ensure_sync usage provides a method for
extensions to also support async, as now documented.
2021-05-03 06:15:39 -07:00
.github Upgrade to GitHub-native Dependabot 2021-04-28 16:46:45 +00:00
artwork standardize license and copyright 2019-06-22 13:09:09 -07:00
docs Simplify the async handling code 2021-05-03 06:15:39 -07:00
examples move package metadata to setup.cfg 2020-04-04 14:50:21 -07:00
requirements Bump python-dotenv from 0.17.0 to 0.17.1 2021-05-01 08:02:41 +00:00
src/flask Simplify the async handling code 2021-05-03 06:15:39 -07:00
tests Simplify the async handling code 2021-05-03 06:15:39 -07:00
.editorconfig add EditorConfig 2020-05-23 13:25:06 -07:00
.gitignore Add vscode settings dir to .gitignore 2020-02-10 11:09:04 -08:00
.pre-commit-config.yaml [pre-commit.ci] pre-commit autoupdate 2021-04-26 17:21:56 +00:00
.readthedocs.yaml use rtd to build docs for prs 2021-02-16 08:36:14 -08:00
CHANGES.rst Update changelog for #3932 2021-04-28 14:20:44 +08:00
CODE_OF_CONDUCT.md Create CODE_OF_CONDUCT.md 2019-05-06 12:41:01 -04:00
CONTRIBUTING.rst update contributing guide 2021-02-08 18:26:37 -08:00
LICENSE.rst standardize license and copyright 2019-06-22 13:09:09 -07:00
MANIFEST.in Initial typing support 2021-04-26 17:20:24 +01:00
README.rst update project links 2021-02-24 10:09:15 -08:00
setup.cfg Initial typing support 2021-04-26 17:20:24 +01:00
setup.py Allow using Click 7 with a DeprecationWarning 2021-04-27 16:45:06 +02:00
tox.ini Allow using Click 7 with a DeprecationWarning 2021-04-27 16:45:06 +02:00

Flask
=====

Flask is a lightweight `WSGI`_ web application framework. It is designed
to make getting started quick and easy, with the ability to scale up to
complex applications. It began as a simple wrapper around `Werkzeug`_
and `Jinja`_ and has become one of the most popular Python web
application frameworks.

Flask offers suggestions, but doesn't enforce any dependencies or
project layout. It is up to the developer to choose the tools and
libraries they want to use. There are many extensions provided by the
community that make adding new functionality easy.

.. _WSGI: https://wsgi.readthedocs.io/
.. _Werkzeug: https://werkzeug.palletsprojects.com/
.. _Jinja: https://jinja.palletsprojects.com/


Installing
----------

Install and update using `pip`_:

.. code-block:: text

    $ pip install -U Flask

.. _pip: https://pip.pypa.io/en/stable/quickstart/


A Simple Example
----------------

.. code-block:: python

    # save this as app.py
    from flask import Flask

    app = Flask(__name__)

    @app.route("/")
    def hello():
        return "Hello, World!"

.. code-block:: text

    $ flask run
      * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)


Contributing
------------

For guidance on setting up a development environment and how to make a
contribution to Flask, see the `contributing guidelines`_.

.. _contributing guidelines: https://github.com/pallets/flask/blob/master/CONTRIBUTING.rst


Donate
------

The Pallets organization develops and supports Flask and the libraries
it uses. In order to grow the community of contributors and users, and
allow the maintainers to devote more time to the projects, `please
donate today`_.

.. _please donate today: https://palletsprojects.com/donate


Links
-----

-   Documentation: https://flask.palletsprojects.com/
-   Changes: https://flask.palletsprojects.com/changes/
-   PyPI Releases: https://pypi.org/project/Flask/
-   Source Code: https://github.com/pallets/flask/
-   Issue Tracker: https://github.com/pallets/flask/issues/
-   Website: https://palletsprojects.com/p/flask/
-   Twitter: https://twitter.com/PalletsTeam
-   Chat: https://discord.gg/pallets