Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
142 commits
Select commit Hold shift + click to select a range
491ea32
Optimize loop in Flask._find_error_handler()
laggardkernel Jun 1, 2021
270eb2d
Support View and MethodView instances with async handlers
miguelgrinberg May 27, 2021
5205cd4
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Jun 1, 2021
6a4e7e9
improve typing for `app.errorhandler` decorator
pcorpet May 31, 2021
63893a4
Improve the changelog entry
pgjones Jun 6, 2021
92bed66
Update celery.rst
Hugo0 Jun 8, 2021
399b851
Merge pull request #4142 from Hugo0/patch-1
davidism Jun 8, 2021
34027d8
Improve the contributing guide
greyli Jun 14, 2021
a44c722
Fix registering a blueprint twice with differing names
pgjones Jun 5, 2021
f8ca80c
Merge pull request #4147 from greyli/update-contributing-guide
greyli Jun 15, 2021
f353d12
Update docs of rendering templates (#4153)
yuxiaoy1 Jun 18, 2021
5fa7d2e
Update templating.rst
yuxiaoy1 Jun 18, 2021
7b696e0
Update testing.rst
yuxiaoy1 Jun 18, 2021
5261aeb
Merge pull request #4156 from yuxiaoy1/patch-4
davidism Jun 20, 2021
d426b58
Merge pull request #4155 from yuxiaoy1/patch-1
davidism Jun 20, 2021
35eb582
Change flask.xxx to plain version in testing docs
yuxiaoy1 Jun 20, 2021
49cbb77
Merge pull request #4165 from yuxiaoy1/patch-1
davidism Jun 21, 2021
c224832
Fix typo in docs/views.rst
greyli Jun 26, 2021
7023145
Merge pull request #4175 from greyli/views-docs
greyli Jun 27, 2021
6e1b720
Fix typo in docs
ThiefMaster Jul 6, 2021
922e91b
Omit the type attribute of script tag
yuxiaoy1 Jul 7, 2021
29c09a9
Omit the type attribute of script tag
yuxiaoy1 Jul 7, 2021
85c35bd
Fix link in ASGI docs (#4191)
yuxiaoy1 Jul 7, 2021
3127c30
Small SQL formatting fix
Elahi-cs Jul 7, 2021
e7b16b5
Merge pull request #4193 from Elahi-cs/sql-fix
davidism Jul 7, 2021
858cc9c
Wrong variable name use
kaushikk25 Aug 5, 2021
5dfa67e
Merge pull request #4221 from kaushikk25/patch-1
davidism Aug 5, 2021
a0afb6f
Merge pull request #4190 from yuxiaoy1/docs
davidism Aug 5, 2021
e18ed45
document return value for config loading methods
starlightknown Aug 6, 2021
50b7dcb
Merge pull request #4131 from starlightknown/docstring
davidism Aug 6, 2021
5119657
safer check for existing user in tutorial
awijaya22 Jun 7, 2021
187f6ce
Merge pull request #4139 from awijaya22/issue4099
davidism Aug 6, 2021
9a2adfb
static_folder can be a pathlib.Path
Yourun-proger Jun 16, 2021
06cf349
Merge pull request #4152 from Yourun-proger/fix
davidism Aug 6, 2021
892ae95
jsonify encodes decimal to str
ajayd-san Jun 19, 2021
66d9d4f
Merge pull request #4160 from default-303/decimal_fix
davidism Aug 6, 2021
aa6dd09
correctly handle raising deferred errors in cli lazy loading
Rohan-Salwan Jun 22, 2021
2305b05
add test for lazy loading error
davidism Aug 6, 2021
c3f923d
Merge pull request #4169 from Rohan-Salwan/dev
davidism Aug 6, 2021
9f0da9b
cli loader handles kwargs in app factory
ren-ozeki Jun 25, 2021
ef3a82a
Merge pull request #4174 from na2shell/fix_4170
davidism Aug 6, 2021
9830fd8
update pip link
esadek Aug 9, 2021
9c91bb3
Merge pull request #4227 from esadek/pip_link
davidism Aug 10, 2021
d9133e9
update requirements
davidism Aug 10, 2021
78e82a3
update pre-commit hooks
davidism Aug 10, 2021
31ce7d6
add type stub packages
davidism Aug 10, 2021
4820737
Merge pull request #4232 from pallets/update-requirements
davidism Aug 10, 2021
ae5ad9e
add type stub packages
davidism Aug 10, 2021
84aa870
Remove the mention of Flask-Uploads in uploading docs
greyli Aug 13, 2021
3261a94
Merge pull request #4234 from greyli/upload-docs
davidism Aug 14, 2021
fafc132
Update cherokee links in docs/deploying (#4249)
nabbisen Aug 29, 2021
e1dce5c
Fix typo in docs (#4261)
Mindiell Sep 8, 2021
7c7b583
update pre-commit hooks
davidism Sep 8, 2021
313a70d
update requirements
davidism Sep 8, 2021
9d9108f
fix: typo docs/debugging.rst:72
kkirsche Sep 14, 2021
ca0033c
Merge pull request #4266 from kkirsche/patch-1
greyli Sep 15, 2021
6a4bf9e
use exception chaining
davidism Oct 1, 2021
34ff7d7
Merge pull request #4283 from pallets/except-chain
davidism Oct 1, 2021
42a6da2
update requirements
davidism Oct 1, 2021
3b83d0c
Merge pull request #4284 from pallets/update-requirements
davidism Oct 1, 2021
3a78f50
Fix broken link to Flask-WTF
KPLauritzen Sep 27, 2021
56c8bdd
Merge pull request #4271 from KPLauritzen/b/broken-link-flaskwtf
davidism Oct 1, 2021
22933a8
fix docs for Flask.test_client_class
Jalkhov Sep 23, 2021
b4094b3
Merge pull request #4269 from Jalkhov/patch-1
davidism Oct 1, 2021
1a40d9b
fix grammar in links to app and request context
sprutner Sep 21, 2021
f8c881b
Merge pull request #4267 from sprutner/patch-1
davidism Oct 1, 2021
7685851
fix list numbering
Makonede Oct 2, 2021
4346498
Merge pull request #4285 from Makonede/patch-1
davidism Oct 2, 2021
166a2a6
Fix callback order for nested blueprints
Aug 9, 2021
3f6cdbd
use similar code for all callback-applying methods
davidism Oct 4, 2021
6d637f0
Merge pull request #4230 from matipau/blueprint-fix
davidism Oct 4, 2021
174fe44
release version 2.0.2
davidism Oct 4, 2021
6f77625
Merge pull request #4287 from pallets/release-2.0.2
davidism Oct 4, 2021
6d65595
try to address flakiness of lazy loading test
davidism Oct 5, 2021
5a1c5eb
Merge pull request #4293 from pallets/flaky-lazy-test
davidism Oct 5, 2021
b2b6045
allow lazy loading test to fail on pypy
davidism Oct 5, 2021
8ddf80c
Merge pull request #4294 from pallets/flaky-lazy-test
davidism Oct 5, 2021
58a08a1
use secrets instead of os.urandom
Oct 12, 2021
c5ed6c5
Merge pull request #4301 from kkirsche/secret_key_via_secrets
davidism Oct 13, 2021
21def4e
Fixes old print statement in some documentation pages
karintou8710 Oct 15, 2021
ded812b
Merge pull request #4302 from karintou8710/old-print
davidism Oct 16, 2021
225ff3e
Fix example `SECRET_KEY` generation code
rnevius Oct 18, 2021
860431f
update requirements
davidism Nov 1, 2021
303a1e6
Merge pull request #4326 from pallets/update-requirements
davidism Nov 1, 2021
1f40c77
test Python 3.10 and 3.11
davidism Nov 5, 2021
7a5aa57
Merge pull request #4331 from pallets/test-python-versions
davidism Nov 5, 2021
a2e79ee
Correct the actual unescaped character
vinzid Nov 7, 2021
8600945
Merge pull request #4332 from vinzid/patch-1
davidism Nov 7, 2021
4e8787b
test min/dev versions of pallets deps
davidism Nov 15, 2021
a2258dd
exclude greenlet tests on python 3.11
davidism Nov 15, 2021
564bb27
deprecate as_tuple
davidism Nov 15, 2021
3720669
Merge pull request #4341 from pallets/test-min-dev
davidism Nov 15, 2021
46b39e2
fix errorhandler type check
delicb Oct 6, 2021
b831e85
Merge pull request #4298 from delicb/fix/issue4295
davidism Nov 15, 2021
e679a85
made ImportError verbose in cli.py
HenryKobin Oct 25, 2021
c8bf420
Merge pull request #4310 from HenryKobin/import-error-verbose
davidism Nov 15, 2021
282d862
document session lifetime and possible concurrency issues
davidism Oct 31, 2021
d086a51
Merge pull request #4318 from eprigorodov/patch-1
davidism Nov 16, 2021
9fe2131
replace nbsp characters
davidism Nov 16, 2021
2e10fc2
document address already in use error
davidism Nov 16, 2021
776bf09
Merge pull request #4343 from pallets/address-already-in-use
davidism Nov 16, 2021
f16524e
fix typo
jugmac00 Dec 16, 2021
624ed4d
Merge pull request #4384 from jugmac00/patch-1
davidism Dec 16, 2021
9d36623
update requirements
davidism Dec 22, 2021
c5ca175
Merge pull request #4389 from pallets/update-requirements
davidism Dec 22, 2021
a841cfa
Only use a custom JSONDecoder if needed
olliemath Nov 20, 2021
7b0c82d
Merge pull request #4350 from olliemath/patch-1
davidism Dec 23, 2021
633449a
fix error message
Yourun-proger Nov 19, 2021
b1a00eb
update error message for after_this_request and copy_current_request_…
davidism Dec 23, 2021
6389c07
Merge pull request #4348 from Yourun-proger/fix_msg
davidism Dec 23, 2021
0122a4f
Fix the command for checking port on macOS in server docs
greyli Dec 12, 2021
990a95f
Merge pull request #4382
davidism Dec 23, 2021
1a1c7ea
pin os and python version in rtd build
davidism Dec 23, 2021
9e50ad5
pin os and python version in rtd build
davidism Dec 23, 2021
a025ee3
update requirements
davidism Jan 13, 2022
66f2ac6
update tool config
davidism Jan 13, 2022
afe77fe
Adding Fish commands to docs
otherJL0 Jan 11, 2022
981a94d
Merge pull request #4412 from otherJL0/main
davidism Jan 14, 2022
08ad8aa
Remove X-XSS-Protection suggestion
cameronthecoder Dec 31, 2021
de4b280
Merge pull request #4397 from cameronthecoder/main
davidism Jan 14, 2022
436c7af
[pre-commit.ci] pre-commit autoupdate
pre-commit-ci[bot] Feb 7, 2022
528db86
Merge pull request #4442 from pallets/pre-commit-ci-update-config
davidism Feb 8, 2022
6f7d99c
use pip-compile-multi for requirements
davidism Feb 8, 2022
426a1e2
fix pytest 7 warnings
davidism Feb 8, 2022
9256747
cache pip with setup-python action
davidism Feb 8, 2022
1fd8654
stop using dependabot for python, too noisy
davidism Feb 8, 2022
d6496c8
Merge pull request #4443 from pallets/update-requirements
davidism Feb 8, 2022
761d7e1
rewrite testing docs
davidism Feb 13, 2022
c15f74c
Merge pull request #4448 from pallets/testing-docs
davidism Feb 13, 2022
702d973
release version 2.0.3
davidism Feb 14, 2022
ef557b3
Merge pull request #4449 from pallets/release-2.0.3
davidism Feb 14, 2022
ad13dbc
pin setuptools for reorder_python_imports
davidism Feb 18, 2022
89b7dc8
update reference to 'query_string' parameter
usrme Feb 23, 2022
a466fc3
Merge pull request #4467 from pallets/docs-testing-query_string
davidism Feb 26, 2022
21ee19c
fix dict syntax in testing doc
Abdur-rahmaanJ Feb 26, 2022
ab0269a
Merge pull request #4468 from Abdur-rahmaanJ/patch-4
davidism Feb 26, 2022
5be744e
Format code snippet in testing docs properly
greyli Feb 27, 2022
2e161a0
Merge pull request #4469 from greyli/fix-testing-docs
greyli Feb 27, 2022
4685c25
Add missing docstring for Blueprint cli_group
greyli Mar 26, 2022
0305d31
Merge pull request #4497 from greyli/bp-param-docs
davidism Mar 26, 2022
d75a342
Sync changes from latest Flask 2.0.x
greyli Jun 12, 2022
eb88613
Update translation po files
greyli Jun 12, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
version: 2
updates:
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "monthly"
day: "monday"
time: "16:00"
timezone: "UTC"
15 changes: 15 additions & 0 deletions .github/workflows/lock.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
name: 'Lock threads'

on:
schedule:
- cron: '0 0 * * *'

jobs:
lock:
runs-on: ubuntu-latest
steps:
- uses: dessant/lock-threads@v3
with:
github-token: ${{ github.token }}
issue-inactive-days: 14
pr-inactive-days: 14
34 changes: 34 additions & 0 deletions .github/workflows/tests.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -13,12 +13,46 @@ on:
paths-ignore:
- '*.md'
jobs:
<<<<<<< HEAD
docs:
name: docs
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/setup-python@v2
- run: python -m pip install --upgrade pip wheel
=======
tests:
name: ${{ matrix.name }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
include:
- {name: Linux, python: '3.10', os: ubuntu-latest, tox: py310}
- {name: Windows, python: '3.10', os: windows-latest, tox: py310}
- {name: Mac, python: '3.10', os: macos-latest, tox: py310}
- {name: '3.11-dev', python: '3.11-dev', os: ubuntu-latest, tox: py311}
- {name: '3.9', python: '3.9', os: ubuntu-latest, tox: py39}
- {name: '3.8', python: '3.8', os: ubuntu-latest, tox: py38}
- {name: '3.7', python: '3.7', os: ubuntu-latest, tox: py37}
- {name: '3.6', python: '3.6', os: ubuntu-latest, tox: py36}
- {name: 'PyPy', python: 'pypy-3.7', os: ubuntu-latest, tox: pypy37}
- {name: 'Pallets Minimum Versions', python: '3.10', os: ubuntu-latest, tox: py-min}
- {name: 'Pallets Development Versions', python: '3.7', os: ubuntu-latest, tox: py-dev}
- {name: Typing, python: '3.10', os: ubuntu-latest, tox: typing}
steps:
- uses: actions/checkout@v2
- uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python }}
cache: 'pip'
cache-dependency-path: 'requirements/*.txt'
- name: update pip
run: |
pip install -U wheel
pip install -U setuptools
python -m pip install -U pip
>>>>>>> flask/2.0.x
- run: pip install tox
- run: tox -e docs
16 changes: 11 additions & 5 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -1,31 +1,37 @@
ci:
autoupdate_branch: "2.0.x"
autoupdate_schedule: monthly
repos:
- repo: https://github.com/asottile/pyupgrade
rev: v2.15.0
rev: v2.31.0
hooks:
- id: pyupgrade
args: ["--py36-plus"]
- repo: https://github.com/asottile/reorder_python_imports
rev: v2.5.0
rev: v2.7.1
hooks:
- id: reorder-python-imports
name: Reorder Python imports (src, tests)
files: "^(?!examples/)"
args: ["--application-directories", "src"]
additional_dependencies: ["setuptools>60.9"]
- repo: https://github.com/psf/black
rev: 21.5b1
rev: 22.1.0
hooks:
- id: black
- repo: https://github.com/PyCQA/flake8
rev: 3.9.2
rev: 4.0.1
hooks:
- id: flake8
additional_dependencies:
- flake8-bugbear
- flake8-implicit-str-concat
- repo: https://github.com/peterdemin/pip-compile-multi
rev: v2.4.3
hooks:
- id: pip-compile-multi-verify
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v3.4.0
rev: v4.1.0
hooks:
- id: fix-byte-order-marker
- id: trailing-whitespace
Expand Down
4 changes: 4 additions & 0 deletions .readthedocs.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,8 @@
version: 2
build:
os: ubuntu-20.04
tools:
python: "3.10"
python:
install:
- requirements: requirements/docs.txt
Expand Down
35 changes: 30 additions & 5 deletions CHANGES.rst
Original file line number Diff line number Diff line change
@@ -1,23 +1,48 @@
.. currentmodule:: flask

Version 2.1.0
Version 2.0.3
-------------

Unreleased
Released 2022-02-14

- Update Click dependency to >= 8.0.
- The test client's ``as_tuple`` parameter is deprecated and will be
removed in Werkzeug 2.1. It is now also deprecated in Flask, to be
removed in Flask 2.1, while remaining compatible with both in
2.0.x. Use ``response.request.environ`` instead. :pr:`4341`
- Fix type annotation for ``errorhandler`` decorator. :issue:`4295`
- Revert a change to the CLI that caused it to hide ``ImportError``
tracebacks when importing the application. :issue:`4307`
- ``app.json_encoder`` and ``json_decoder`` are only passed to
``dumps`` and ``loads`` if they have custom behavior. This improves
performance, mainly on PyPy. :issue:`4349`
- Clearer error message when ``after_this_request`` is used outside a
request context. :issue:`4333`


Version 2.0.2
-------------

Unreleased
Released 2021-10-04

- Fix type annotation for ``teardown_request``. :issue:`4093`
- Fix type annotation for ``teardown_*`` methods. :issue:`4093`
- Fix type annotation for ``before_request`` and ``before_app_request``
decorators. :issue:`4104`
- Fixed the issue where typing requires template global
decorators to accept functions with no arguments. :issue:`4098`
- Support View and MethodView instances with async handlers. :issue:`4112`
- Enhance typing of ``app.errorhandler`` decorator. :issue:`4095`
- Fix registering a blueprint twice with differing names. :issue:`4124`
- Fix the type of ``static_folder`` to accept ``pathlib.Path``.
:issue:`4150`
- ``jsonify`` handles ``decimal.Decimal`` by encoding to ``str``.
:issue:`4157`
- Correctly handle raising deferred errors in CLI lazy loading.
:issue:`4096`
- The CLI loader handles ``**kwargs`` in a ``create_app`` function.
:issue:`4170`
- Fix the order of ``before_request`` and other callbacks that trigger
before the view returns. They are called from the app down to the
closest nested blueprint. :issue:`4229`


Version 2.0.1
Expand Down
6 changes: 4 additions & 2 deletions CONTRIBUTING.rst
Original file line number Diff line number Diff line change
Expand Up @@ -12,14 +12,16 @@ to address bugs and feature requests in Flask itself. Use one of the
following resources for questions about using Flask or issues with your
own code:

- The ``#get-help`` channel on our Discord chat:
- The ``#questions`` channel on our Discord chat:
https://discord.gg/pallets
- The mailing list flask@python.org for long term discussion or larger
issues.
- Ask on `Stack Overflow`_. Search with Google first using:
``site:stackoverflow.com flask {search term, exception message, etc.}``
- Ask on our `GitHub Discussions`_.

.. _Stack Overflow: https://stackoverflow.com/questions/tagged/flask?tab=Frequent
.. _GitHub Discussions: https://github.com/pallets/flask/discussions


Reporting issues
Expand Down Expand Up @@ -92,7 +94,7 @@ First time setup

.. code-block:: text

git remote add fork https://github.com/{username}/flask
$ git remote add fork https://github.com/{username}/flask

- Create a virtualenv.

Expand Down
2 changes: 1 addition & 1 deletion README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ Install and update using `pip`_:

$ pip install -U Flask

.. _pip: https://pip.pypa.io/en/stable/quickstart/
.. _pip: https://pip.pypa.io/en/stable/getting-started/


A Simple Example
Expand Down
2 changes: 1 addition & 1 deletion artwork/LICENSE.rst
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ following conditions are met:
1. Redistributions of source code must retain the above copyright
notice and this list of conditions.

3. Neither the name of the copyright holder nor the names of its
2. Neither the name of the copyright holder nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.

Expand Down
8 changes: 4 additions & 4 deletions docs/api.rst
Original file line number Diff line number Diff line change
Expand Up @@ -168,9 +168,9 @@ thing, like it does for :class:`request` and :class:`session`.
:attr:`Flask.app_ctx_globals_class`, which defaults to
:class:`ctx._AppCtxGlobals`.

This is a good place to store resources during a request. During
testing, you can use the :ref:`faking-resources` pattern to
pre-configure such resources.
This is a good place to store resources during a request. For
example, a ``before_request`` function could load a user object from
a session id, then set ``g.user`` to be used in the view function.

This is a proxy. See :ref:`notes-on-proxies` for more information.

Expand Down Expand Up @@ -256,7 +256,7 @@ the filter to render data inside ``<script>`` tags.

.. sourcecode:: html+jinja

<script type=text/javascript>
<script>
const names = {{ names|tosjon }};
renderChart(names, {{ axis_data|tojson }});
</script>
Expand Down
2 changes: 1 addition & 1 deletion docs/appcontext.rst
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ a request, CLI command, or other activity. Rather than passing the
application around to each function, the :data:`current_app` and
:data:`g` proxies are accessed instead.

This is similar to the :doc:`/reqcontext`, which keeps track of
This is similar to :doc:`/reqcontext`, which keeps track of
request-level data during a request. A corresponding application context
is pushed when a request context is pushed.

Expand Down
6 changes: 6 additions & 0 deletions docs/async-await.rst
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,12 @@ defined with ``async def`` and use ``await``.
data = await async_db_query(...)
return jsonify(data)

Pluggable class-based views also support handlers that are implemented as
coroutines. This applies to the :meth:`~flask.views.View.dispatch_request`
method in views that inherit from the :class:`flask.views.View` class, as
well as all the HTTP method handlers in views that inherit from the
:class:`flask.views.MethodView` class.

.. admonition:: Using ``async`` on Windows on Python 3.8

Python 3.8 has a bug related to asyncio on Windows. If you encounter
Expand Down
58 changes: 58 additions & 0 deletions docs/cli.rst
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,13 @@ environment variable is used to specify how to load the application.
$ export FLASK_APP=hello
$ flask run

.. group-tab:: Fish

.. code-block:: text

$ set -x FLASK_APP hello
$ flask run

.. group-tab:: CMD

.. code-block:: text
Expand Down Expand Up @@ -103,6 +110,11 @@ replaces the :meth:`Flask.run` method in most cases. ::
is provided for convenience, but is not designed to be particularly secure,
stable, or efficient. See :doc:`/deploying/index` for how to run in production.

If another program is already using port 5000, you'll see
``OSError: [Errno 98]`` or ``OSError: [WinError 10013]`` when the
server tries to start. See :ref:`address-already-in-use` for how to
handle that.


Open a Shell
------------
Expand Down Expand Up @@ -152,6 +164,20 @@ reloader.
* Debugger is active!
* Debugger PIN: 223-456-919

.. group-tab:: Fish

.. code-block:: text

$ set -x FLASK_ENV development
$ flask run
* Serving Flask app "hello"
* Environment: development
* Debug mode: on
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
* Restarting with inotify reloader
* Debugger is active!
* Debugger PIN: 223-456-919

.. group-tab:: CMD

.. code-block:: text
Expand Down Expand Up @@ -203,6 +229,17 @@ separated with ``:``, or ``;`` on Windows.
* Running on http://127.0.0.1:8000/
* Detected change in '/path/to/file1', reloading

.. group-tab:: Fish

.. code-block:: text

$ flask run --extra-files file1:dirA/file2:dirB/
# or
$ set -x FLASK_RUN_EXTRA_FILES file1 dirA/file2 dirB/
$ flask run
* Running on http://127.0.0.1:8000/
* Detected change in '/path/to/file1', reloading

.. group-tab:: CMD

.. code-block:: text
Expand Down Expand Up @@ -283,6 +320,14 @@ command, instead of ``flask run --port 8000``:
$ flask run
* Running on http://127.0.0.1:8000/

.. group-tab:: Fish

.. code-block:: text

$ set -x FLASK_RUN_PORT 8000
$ flask run
* Running on http://127.0.0.1:8000/

.. group-tab:: CMD

.. code-block:: text
Expand Down Expand Up @@ -330,6 +375,13 @@ configure as expected.
$ export FLASK_SKIP_DOTENV=1
$ flask run

.. group-tab:: Fish

.. code-block:: text

$ set -x FLASK_SKIP_DOTENV 1
$ flask run

.. group-tab:: CMD

.. code-block:: text
Expand Down Expand Up @@ -360,6 +412,12 @@ script. Activating the virtualenv will set the variables.

$ export FLASK_APP=hello

.. group-tab:: Fish

Fish, :file:`venv/bin/activate.fish`::

$ set -x FLASK_APP hello

.. group-tab:: CMD

Windows CMD, :file:`venv\\Scripts\\activate.bat`::
Expand Down
Loading