forked from orbit-oss/flask
Add command switch tabs for Bash, CMD and Powershell with sphinx-tabs (#3714)
* Enable Sphinx extension sphinx-tabs * Add command tabs for all export commands * Add command tabs for all venv commands Fix trim spaces
This commit is contained in:
parent
c5a5d9b30b
commit
1035efc7d6
14 changed files with 498 additions and 126 deletions
|
|
@ -96,16 +96,21 @@ First time setup
|
||||||
|
|
||||||
- Create a virtualenv.
|
- Create a virtualenv.
|
||||||
|
|
||||||
.. code-block:: text
|
.. tabs::
|
||||||
|
|
||||||
$ python3 -m venv env
|
.. group-tab:: macOS/Linux
|
||||||
$ . env/bin/activate
|
|
||||||
|
|
||||||
On Windows, activating is different.
|
.. code-block:: text
|
||||||
|
|
||||||
.. code-block:: text
|
$ python3 -m venv env
|
||||||
|
$ . env/bin/activate
|
||||||
|
|
||||||
> env\Scripts\activate
|
.. group-tab:: Windows
|
||||||
|
|
||||||
|
.. code-block:: text
|
||||||
|
|
||||||
|
> py -3 -m venv env
|
||||||
|
> env\Scripts\activate
|
||||||
|
|
||||||
- Install Flask in editable mode with development dependencies.
|
- Install Flask in editable mode with development dependencies.
|
||||||
|
|
||||||
|
|
|
||||||
189
docs/cli.rst
189
docs/cli.rst
|
|
@ -18,20 +18,28 @@ The ``flask`` command is installed by Flask, not your application; it must be
|
||||||
told where to find your application in order to use it. The ``FLASK_APP``
|
told where to find your application in order to use it. The ``FLASK_APP``
|
||||||
environment variable is used to specify how to load the application.
|
environment variable is used to specify how to load the application.
|
||||||
|
|
||||||
Unix Bash (Linux, Mac, etc.)::
|
.. tabs::
|
||||||
|
|
||||||
$ export FLASK_APP=hello
|
.. group-tab:: Bash
|
||||||
$ flask run
|
|
||||||
|
|
||||||
Windows CMD::
|
.. code-block:: text
|
||||||
|
|
||||||
> set FLASK_APP=hello
|
$ export FLASK_APP=hello
|
||||||
> flask run
|
$ flask run
|
||||||
|
|
||||||
Windows PowerShell::
|
.. group-tab:: CMD
|
||||||
|
|
||||||
> $env:FLASK_APP = "hello"
|
.. code-block:: text
|
||||||
> flask run
|
|
||||||
|
> set FLASK_APP=hello
|
||||||
|
> flask run
|
||||||
|
|
||||||
|
.. group-tab:: Powershell
|
||||||
|
|
||||||
|
.. code-block:: text
|
||||||
|
|
||||||
|
> $env:FLASK_APP = "hello"
|
||||||
|
> flask run
|
||||||
|
|
||||||
While ``FLASK_APP`` supports a variety of options for specifying your
|
While ``FLASK_APP`` supports a variety of options for specifying your
|
||||||
application, most use cases should be simple. Here are the typical values:
|
application, most use cases should be simple. Here are the typical values:
|
||||||
|
|
@ -128,16 +136,49 @@ If the env is set to ``development``, the ``flask`` command will enable
|
||||||
debug mode and ``flask run`` will enable the interactive debugger and
|
debug mode and ``flask run`` will enable the interactive debugger and
|
||||||
reloader.
|
reloader.
|
||||||
|
|
||||||
::
|
.. tabs::
|
||||||
|
|
||||||
$ FLASK_ENV=development flask run
|
.. group-tab:: Bash
|
||||||
* Serving Flask app "hello"
|
|
||||||
* Environment: development
|
.. code-block:: text
|
||||||
* Debug mode: on
|
|
||||||
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
|
$ export FLASK_ENV=development
|
||||||
* Restarting with inotify reloader
|
$ flask run
|
||||||
* Debugger is active!
|
* Serving Flask app "hello"
|
||||||
* Debugger PIN: 223-456-919
|
* 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
|
||||||
|
|
||||||
|
> set 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:: Powershell
|
||||||
|
|
||||||
|
.. code-block:: text
|
||||||
|
|
||||||
|
> $env: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
|
||||||
|
|
||||||
|
|
||||||
Watch Extra Files with the Reloader
|
Watch Extra Files with the Reloader
|
||||||
|
|
@ -149,14 +190,40 @@ additional files with the ``--extra-files`` option, or the
|
||||||
``FLASK_RUN_EXTRA_FILES`` environment variable. Multiple paths are
|
``FLASK_RUN_EXTRA_FILES`` environment variable. Multiple paths are
|
||||||
separated with ``:``, or ``;`` on Windows.
|
separated with ``:``, or ``;`` on Windows.
|
||||||
|
|
||||||
.. code-block:: none
|
.. tabs::
|
||||||
|
|
||||||
$ flask run --extra-files file1:dirA/file2:dirB/
|
.. group-tab:: Bash
|
||||||
# or
|
|
||||||
$ export FLASK_RUN_EXTRA_FILES=file1:dirA/file2:dirB/
|
.. code-block:: text
|
||||||
$ flask run
|
|
||||||
* Running on http://127.0.0.1:8000/
|
$ flask run --extra-files file1:dirA/file2:dirB/
|
||||||
* Detected change in '/path/to/file1', reloading
|
# or
|
||||||
|
$ export 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
|
||||||
|
|
||||||
|
> flask run --extra-files file1:dirA/file2:dirB/
|
||||||
|
# or
|
||||||
|
> set 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:: Powershell
|
||||||
|
|
||||||
|
.. code-block:: text
|
||||||
|
|
||||||
|
> flask run --extra-files file1:dirA/file2:dirB/
|
||||||
|
# or
|
||||||
|
> $env: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
|
||||||
|
|
||||||
|
|
||||||
Debug Mode
|
Debug Mode
|
||||||
|
|
@ -206,11 +273,31 @@ environment variables. The variables use the pattern
|
||||||
``FLASK_COMMAND_OPTION``. For example, to set the port for the run
|
``FLASK_COMMAND_OPTION``. For example, to set the port for the run
|
||||||
command, instead of ``flask run --port 8000``:
|
command, instead of ``flask run --port 8000``:
|
||||||
|
|
||||||
.. code-block:: bash
|
.. tabs::
|
||||||
|
|
||||||
$ export FLASK_RUN_PORT=8000
|
.. group-tab:: Bash
|
||||||
$ flask run
|
|
||||||
* Running on http://127.0.0.1:8000/
|
.. code-block:: text
|
||||||
|
|
||||||
|
$ export FLASK_RUN_PORT=8000
|
||||||
|
$ flask run
|
||||||
|
* Running on http://127.0.0.1:8000/
|
||||||
|
|
||||||
|
.. group-tab:: CMD
|
||||||
|
|
||||||
|
.. code-block:: text
|
||||||
|
|
||||||
|
> set FLASK_RUN_PORT=8000
|
||||||
|
> flask run
|
||||||
|
* Running on http://127.0.0.1:8000/
|
||||||
|
|
||||||
|
.. group-tab:: Powershell
|
||||||
|
|
||||||
|
.. code-block:: text
|
||||||
|
|
||||||
|
> $env:FLASK_RUN_PORT = 8000
|
||||||
|
> flask run
|
||||||
|
* Running on http://127.0.0.1:8000/
|
||||||
|
|
||||||
These can be added to the ``.flaskenv`` file just like ``FLASK_APP`` to
|
These can be added to the ``.flaskenv`` file just like ``FLASK_APP`` to
|
||||||
control default command options.
|
control default command options.
|
||||||
|
|
@ -234,10 +321,28 @@ a project runner that loads them already. Keep in mind that the
|
||||||
environment variables must be set before the app loads or it won't
|
environment variables must be set before the app loads or it won't
|
||||||
configure as expected.
|
configure as expected.
|
||||||
|
|
||||||
.. code-block:: bash
|
.. tabs::
|
||||||
|
|
||||||
$ export FLASK_SKIP_DOTENV=1
|
.. group-tab:: Bash
|
||||||
$ flask run
|
|
||||||
|
.. code-block:: text
|
||||||
|
|
||||||
|
$ export FLASK_SKIP_DOTENV=1
|
||||||
|
$ flask run
|
||||||
|
|
||||||
|
.. group-tab:: CMD
|
||||||
|
|
||||||
|
.. code-block:: text
|
||||||
|
|
||||||
|
> set FLASK_SKIP_DOTENV=1
|
||||||
|
> flask run
|
||||||
|
|
||||||
|
.. group-tab:: Powershell
|
||||||
|
|
||||||
|
.. code-block:: text
|
||||||
|
|
||||||
|
> $env:FLASK_SKIP_DOTENV = 1
|
||||||
|
> flask run
|
||||||
|
|
||||||
|
|
||||||
Environment Variables From virtualenv
|
Environment Variables From virtualenv
|
||||||
|
|
@ -247,13 +352,25 @@ If you do not want to install dotenv support, you can still set environment
|
||||||
variables by adding them to the end of the virtualenv's :file:`activate`
|
variables by adding them to the end of the virtualenv's :file:`activate`
|
||||||
script. Activating the virtualenv will set the variables.
|
script. Activating the virtualenv will set the variables.
|
||||||
|
|
||||||
Unix Bash, :file:`venv/bin/activate`::
|
.. tabs::
|
||||||
|
|
||||||
$ export FLASK_APP=hello
|
.. group-tab:: Bash
|
||||||
|
|
||||||
Windows CMD, :file:`venv\\Scripts\\activate.bat`::
|
Unix Bash, :file:`venv/bin/activate`::
|
||||||
|
|
||||||
> set FLASK_APP=hello
|
$ export FLASK_APP=hello
|
||||||
|
|
||||||
|
.. group-tab:: CMD
|
||||||
|
|
||||||
|
Windows CMD, :file:`venv\\Scripts\\activate.bat`::
|
||||||
|
|
||||||
|
> set FLASK_APP=hello
|
||||||
|
|
||||||
|
.. group-tab:: Powershell
|
||||||
|
|
||||||
|
Windows Powershell, :file:`venv\\Scripts\\activate.ps1`::
|
||||||
|
|
||||||
|
> $env:FLASK_APP = "hello"
|
||||||
|
|
||||||
It is preferred to use dotenv support over this, since :file:`.flaskenv` can be
|
It is preferred to use dotenv support over this, since :file:`.flaskenv` can be
|
||||||
committed to the repository so that it works automatically wherever the project
|
committed to the repository so that it works automatically wherever the project
|
||||||
|
|
|
||||||
|
|
@ -18,6 +18,7 @@ extensions = [
|
||||||
"sphinxcontrib.log_cabinet",
|
"sphinxcontrib.log_cabinet",
|
||||||
"pallets_sphinx_themes",
|
"pallets_sphinx_themes",
|
||||||
"sphinx_issues",
|
"sphinx_issues",
|
||||||
|
"sphinx_tabs.tabs",
|
||||||
]
|
]
|
||||||
intersphinx_mapping = {
|
intersphinx_mapping = {
|
||||||
"python": ("https://docs.python.org/3/", None),
|
"python": ("https://docs.python.org/3/", None),
|
||||||
|
|
|
||||||
|
|
@ -65,12 +65,30 @@ in debug mode. To control this separately from the environment, use the
|
||||||
from debug mode. The development environment enables debug mode.
|
from debug mode. The development environment enables debug mode.
|
||||||
|
|
||||||
To switch Flask to the development environment and enable debug mode,
|
To switch Flask to the development environment and enable debug mode,
|
||||||
set :envvar:`FLASK_ENV`::
|
set :envvar:`FLASK_ENV`:
|
||||||
|
|
||||||
$ export FLASK_ENV=development
|
.. tabs::
|
||||||
$ flask run
|
|
||||||
|
|
||||||
(On Windows, use ``set`` instead of ``export``.)
|
.. group-tab:: Bash
|
||||||
|
|
||||||
|
.. code-block:: text
|
||||||
|
|
||||||
|
$ export FLASK_ENV=development
|
||||||
|
$ flask run
|
||||||
|
|
||||||
|
.. group-tab:: CMD
|
||||||
|
|
||||||
|
.. code-block:: text
|
||||||
|
|
||||||
|
> set FLASK_ENV=development
|
||||||
|
> flask run
|
||||||
|
|
||||||
|
.. group-tab:: Powershell
|
||||||
|
|
||||||
|
.. code-block:: text
|
||||||
|
|
||||||
|
> $env:FLASK_ENV = "development"
|
||||||
|
> flask run
|
||||||
|
|
||||||
Using the environment variables as described above is recommended. While
|
Using the environment variables as described above is recommended. While
|
||||||
it is possible to set :data:`ENV` and :data:`DEBUG` in your config or
|
it is possible to set :data:`ENV` and :data:`DEBUG` in your config or
|
||||||
|
|
@ -409,18 +427,34 @@ So a common pattern is this::
|
||||||
This first loads the configuration from the
|
This first loads the configuration from the
|
||||||
`yourapplication.default_settings` module and then overrides the values
|
`yourapplication.default_settings` module and then overrides the values
|
||||||
with the contents of the file the :envvar:`YOURAPPLICATION_SETTINGS`
|
with the contents of the file the :envvar:`YOURAPPLICATION_SETTINGS`
|
||||||
environment variable points to. This environment variable can be set on
|
environment variable points to. This environment variable can be set
|
||||||
Linux or OS X with the export command in the shell before starting the
|
in the shell before starting the server:
|
||||||
server::
|
|
||||||
|
|
||||||
$ export YOURAPPLICATION_SETTINGS=/path/to/settings.cfg
|
.. tabs::
|
||||||
$ python run-app.py
|
|
||||||
* Running on http://127.0.0.1:5000/
|
|
||||||
* Restarting with reloader...
|
|
||||||
|
|
||||||
On Windows systems use the `set` builtin instead::
|
.. group-tab:: Bash
|
||||||
|
|
||||||
> set YOURAPPLICATION_SETTINGS=\path\to\settings.cfg
|
.. code-block:: text
|
||||||
|
|
||||||
|
$ export YOURAPPLICATION_SETTINGS=/path/to/settings.cfg
|
||||||
|
$ flask run
|
||||||
|
* Running on http://127.0.0.1:5000/
|
||||||
|
|
||||||
|
.. group-tab:: CMD
|
||||||
|
|
||||||
|
.. code-block:: text
|
||||||
|
|
||||||
|
> set YOURAPPLICATION_SETTINGS=\path\to\settings.cfg
|
||||||
|
> flask run
|
||||||
|
* Running on http://127.0.0.1:5000/
|
||||||
|
|
||||||
|
.. group-tab:: Powershell
|
||||||
|
|
||||||
|
.. code-block:: text
|
||||||
|
|
||||||
|
> $env:YOURAPPLICATION_SETTINGS = "\path\to\settings.cfg"
|
||||||
|
> flask run
|
||||||
|
* Running on http://127.0.0.1:5000/
|
||||||
|
|
||||||
The configuration files themselves are actual Python files. Only values
|
The configuration files themselves are actual Python files. Only values
|
||||||
in uppercase are actually stored in the config object later on. So make
|
in uppercase are actually stored in the config object later on. So make
|
||||||
|
|
@ -465,17 +499,36 @@ In addition to pointing to configuration files using environment variables, you
|
||||||
may find it useful (or necessary) to control your configuration values directly
|
may find it useful (or necessary) to control your configuration values directly
|
||||||
from the environment.
|
from the environment.
|
||||||
|
|
||||||
Environment variables can be set on Linux or OS X with the export command in
|
Environment variables can be set in the shell before starting the server:
|
||||||
the shell before starting the server::
|
|
||||||
|
|
||||||
$ export SECRET_KEY='5f352379324c22463451387a0aec5d2f'
|
.. tabs::
|
||||||
$ export MAIL_ENABLED=false
|
|
||||||
$ python run-app.py
|
|
||||||
* Running on http://127.0.0.1:5000/
|
|
||||||
|
|
||||||
On Windows systems use the ``set`` builtin instead::
|
.. group-tab:: Bash
|
||||||
|
|
||||||
> set SECRET_KEY='5f352379324c22463451387a0aec5d2f'
|
.. code-block:: text
|
||||||
|
|
||||||
|
$ export SECRET_KEY="5f352379324c22463451387a0aec5d2f"
|
||||||
|
$ export MAIL_ENABLED=false
|
||||||
|
$ flask run
|
||||||
|
* Running on http://127.0.0.1:5000/
|
||||||
|
|
||||||
|
.. group-tab:: CMD
|
||||||
|
|
||||||
|
.. code-block:: text
|
||||||
|
|
||||||
|
> set SECRET_KEY="5f352379324c22463451387a0aec5d2f"
|
||||||
|
> set MAIL_ENABLED=false
|
||||||
|
> flask run
|
||||||
|
* Running on http://127.0.0.1:5000/
|
||||||
|
|
||||||
|
.. group-tab:: Powershell
|
||||||
|
|
||||||
|
.. code-block:: text
|
||||||
|
|
||||||
|
> $env:SECRET_KEY = "5f352379324c22463451387a0aec5d2f"
|
||||||
|
> $env:MAIL_ENABLED = "false"
|
||||||
|
> flask run
|
||||||
|
* Running on http://127.0.0.1:5000/
|
||||||
|
|
||||||
While this approach is straightforward to use, it is important to remember that
|
While this approach is straightforward to use, it is important to remember that
|
||||||
environment variables are strings -- they are not automatically deserialized
|
environment variables are strings -- they are not automatically deserialized
|
||||||
|
|
|
||||||
|
|
@ -44,10 +44,28 @@ To enable the debugger, run the development server with the
|
||||||
Flask in debug mode, which changes how it handles some errors, and
|
Flask in debug mode, which changes how it handles some errors, and
|
||||||
enables the debugger and reloader.
|
enables the debugger and reloader.
|
||||||
|
|
||||||
.. code-block:: text
|
.. tabs::
|
||||||
|
|
||||||
$ export FLASK_ENV=development
|
.. group-tab:: Bash
|
||||||
$ flask run
|
|
||||||
|
.. code-block:: text
|
||||||
|
|
||||||
|
$ export FLASK_ENV=development
|
||||||
|
$ flask run
|
||||||
|
|
||||||
|
.. group-tab:: CMD
|
||||||
|
|
||||||
|
.. code-block:: text
|
||||||
|
|
||||||
|
> set FLASK_ENV=development
|
||||||
|
> flask run
|
||||||
|
|
||||||
|
.. group-tab:: Powershell
|
||||||
|
|
||||||
|
.. code-block:: text
|
||||||
|
|
||||||
|
> $env:FLASK_ENV = "development"
|
||||||
|
> flask run
|
||||||
|
|
||||||
``FLASK_ENV`` can only be set as an environment variable. When running
|
``FLASK_ENV`` can only be set as an environment variable. When running
|
||||||
from Python code, passing ``debug=True`` enables debug mode, which is
|
from Python code, passing ``debug=True`` enables debug mode, which is
|
||||||
|
|
@ -79,10 +97,28 @@ which can interfere.
|
||||||
|
|
||||||
When running from the command line:
|
When running from the command line:
|
||||||
|
|
||||||
.. code-block:: text
|
.. tabs::
|
||||||
|
|
||||||
$ export FLASK_ENV=development
|
.. group-tab:: Bash
|
||||||
$ flask run --no-debugger --no-reload
|
|
||||||
|
.. code-block:: text
|
||||||
|
|
||||||
|
$ export FLASK_ENV=development
|
||||||
|
$ flask run --no-debugger --no-reload
|
||||||
|
|
||||||
|
.. group-tab:: CMD
|
||||||
|
|
||||||
|
.. code-block:: text
|
||||||
|
|
||||||
|
> set FLASK_ENV=development
|
||||||
|
> flask run --no-debugger --no-reload
|
||||||
|
|
||||||
|
.. group-tab:: Powershell
|
||||||
|
|
||||||
|
.. code-block:: text
|
||||||
|
|
||||||
|
> $env:FLASK_ENV = "development"
|
||||||
|
> flask run --no-debugger --no-reload
|
||||||
|
|
||||||
When running from Python:
|
When running from Python:
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -75,17 +75,23 @@ Create an environment
|
||||||
|
|
||||||
Create a project folder and a :file:`venv` folder within:
|
Create a project folder and a :file:`venv` folder within:
|
||||||
|
|
||||||
.. code-block:: sh
|
.. tabs::
|
||||||
|
|
||||||
$ mkdir myproject
|
.. group-tab:: macOS/Linux
|
||||||
$ cd myproject
|
|
||||||
$ python3 -m venv venv
|
|
||||||
|
|
||||||
On Windows:
|
.. code-block:: text
|
||||||
|
|
||||||
.. code-block:: bat
|
$ mkdir myproject
|
||||||
|
$ cd myproject
|
||||||
|
$ python3 -m venv venv
|
||||||
|
|
||||||
$ py -3 -m venv venv
|
.. group-tab:: Windows
|
||||||
|
|
||||||
|
.. code-block:: text
|
||||||
|
|
||||||
|
> mkdir myproject
|
||||||
|
> cd myproject
|
||||||
|
> py -3 -m venv venv
|
||||||
|
|
||||||
|
|
||||||
.. _install-activate-env:
|
.. _install-activate-env:
|
||||||
|
|
@ -95,15 +101,19 @@ Activate the environment
|
||||||
|
|
||||||
Before you work on your project, activate the corresponding environment:
|
Before you work on your project, activate the corresponding environment:
|
||||||
|
|
||||||
.. code-block:: sh
|
.. tabs::
|
||||||
|
|
||||||
$ . venv/bin/activate
|
.. group-tab:: macOS/Linux
|
||||||
|
|
||||||
On Windows:
|
.. code-block:: text
|
||||||
|
|
||||||
.. code-block:: bat
|
$ . venv/bin/activate
|
||||||
|
|
||||||
> venv\Scripts\activate
|
.. group-tab:: Windows
|
||||||
|
|
||||||
|
.. code-block:: text
|
||||||
|
|
||||||
|
> venv\Scripts\activate
|
||||||
|
|
||||||
Your shell prompt will change to show the name of the activated
|
Your shell prompt will change to show the name of the activated
|
||||||
environment.
|
environment.
|
||||||
|
|
|
||||||
|
|
@ -87,16 +87,56 @@ For more information about the design of extensions refer to :doc:`/extensiondev
|
||||||
Using Applications
|
Using Applications
|
||||||
------------------
|
------------------
|
||||||
|
|
||||||
To run such an application, you can use the :command:`flask` command::
|
To run such an application, you can use the :command:`flask` command:
|
||||||
|
|
||||||
$ export FLASK_APP=myapp
|
.. tabs::
|
||||||
$ flask run
|
|
||||||
|
.. group-tab:: Bash
|
||||||
|
|
||||||
|
.. code-block:: text
|
||||||
|
|
||||||
|
$ export FLASK_APP=myapp
|
||||||
|
$ flask run
|
||||||
|
|
||||||
|
.. group-tab:: CMD
|
||||||
|
|
||||||
|
.. code-block:: text
|
||||||
|
|
||||||
|
> set FLASK_APP=myapp
|
||||||
|
> flask run
|
||||||
|
|
||||||
|
.. group-tab:: Powershell
|
||||||
|
|
||||||
|
.. code-block:: text
|
||||||
|
|
||||||
|
> $env:FLASK_APP = "myapp"
|
||||||
|
> flask run
|
||||||
|
|
||||||
Flask will automatically detect the factory (``create_app`` or ``make_app``)
|
Flask will automatically detect the factory (``create_app`` or ``make_app``)
|
||||||
in ``myapp``. You can also pass arguments to the factory like this::
|
in ``myapp``. You can also pass arguments to the factory like this:
|
||||||
|
|
||||||
$ export FLASK_APP="myapp:create_app('dev')"
|
.. tabs::
|
||||||
$ flask run
|
|
||||||
|
.. group-tab:: Bash
|
||||||
|
|
||||||
|
.. code-block:: text
|
||||||
|
|
||||||
|
$ export FLASK_APP="myapp:create_app('dev')"
|
||||||
|
$ flask run
|
||||||
|
|
||||||
|
.. group-tab:: CMD
|
||||||
|
|
||||||
|
.. code-block:: text
|
||||||
|
|
||||||
|
> set FLASK_APP="myapp:create_app('dev')"
|
||||||
|
> flask run
|
||||||
|
|
||||||
|
.. group-tab:: Powershell
|
||||||
|
|
||||||
|
.. code-block:: text
|
||||||
|
|
||||||
|
> $env:FLASK_APP = "myapp:create_app('dev')"
|
||||||
|
> flask run
|
||||||
|
|
||||||
Then the ``create_app`` factory in ``myapp`` is called with the string
|
Then the ``create_app`` factory in ``myapp`` is called with the string
|
||||||
``'dev'`` as the argument. See :doc:`/cli` for more detail.
|
``'dev'`` as the argument. See :doc:`/cli` for more detail.
|
||||||
|
|
|
||||||
|
|
@ -57,15 +57,51 @@ a big problem, just add a new file called :file:`setup.py` next to the inner
|
||||||
)
|
)
|
||||||
|
|
||||||
In order to run the application you need to export an environment variable
|
In order to run the application you need to export an environment variable
|
||||||
that tells Flask where to find the application instance::
|
that tells Flask where to find the application instance:
|
||||||
|
|
||||||
$ export FLASK_APP=yourapplication
|
.. tabs::
|
||||||
|
|
||||||
|
.. group-tab:: Bash
|
||||||
|
|
||||||
|
.. code-block:: text
|
||||||
|
|
||||||
|
$ export FLASK_APP=yourapplication
|
||||||
|
|
||||||
|
.. group-tab:: CMD
|
||||||
|
|
||||||
|
.. code-block:: text
|
||||||
|
|
||||||
|
> set FLASK_APP=yourapplication
|
||||||
|
|
||||||
|
.. group-tab:: Powershell
|
||||||
|
|
||||||
|
.. code-block:: text
|
||||||
|
|
||||||
|
> $env:FLASK_APP = "yourapplication"
|
||||||
|
|
||||||
If you are outside of the project directory make sure to provide the exact
|
If you are outside of the project directory make sure to provide the exact
|
||||||
path to your application directory. Similarly you can turn on the
|
path to your application directory. Similarly you can turn on the
|
||||||
development features like this::
|
development features like this:
|
||||||
|
|
||||||
$ export FLASK_ENV=development
|
.. tabs::
|
||||||
|
|
||||||
|
.. group-tab:: Bash
|
||||||
|
|
||||||
|
.. code-block:: text
|
||||||
|
|
||||||
|
$ export FLASK_ENV=development
|
||||||
|
|
||||||
|
.. group-tab:: CMD
|
||||||
|
|
||||||
|
.. code-block:: text
|
||||||
|
|
||||||
|
> set FLASK_ENV=development
|
||||||
|
|
||||||
|
.. group-tab:: Powershell
|
||||||
|
|
||||||
|
.. code-block:: text
|
||||||
|
|
||||||
|
> $env:FLASK_ENV = "development"
|
||||||
|
|
||||||
In order to install and run the application you need to issue the following
|
In order to install and run the application you need to issue the following
|
||||||
commands::
|
commands::
|
||||||
|
|
|
||||||
|
|
@ -44,20 +44,31 @@ To run the application, use the :command:`flask` command or
|
||||||
to tell your terminal the application to work with by exporting the
|
to tell your terminal the application to work with by exporting the
|
||||||
``FLASK_APP`` environment variable:
|
``FLASK_APP`` environment variable:
|
||||||
|
|
||||||
.. code-block:: text
|
.. tabs::
|
||||||
|
|
||||||
$ export FLASK_APP=hello.py
|
.. group-tab:: Bash
|
||||||
$ flask run
|
|
||||||
* Running on http://127.0.0.1:5000/
|
|
||||||
|
|
||||||
If you are on Windows, the environment variable syntax depends on command line
|
.. code-block:: text
|
||||||
interpreter. On Command Prompt::
|
|
||||||
|
|
||||||
C:\path\to\app>set FLASK_APP=hello.py
|
$ export FLASK_APP=hello.py
|
||||||
|
$ flask run
|
||||||
|
* Running on http://127.0.0.1:5000/
|
||||||
|
|
||||||
And on PowerShell::
|
.. group-tab:: CMD
|
||||||
|
|
||||||
PS C:\path\to\app> $env:FLASK_APP = "hello.py"
|
.. code-block:: text
|
||||||
|
|
||||||
|
> set FLASK_APP=hello.py
|
||||||
|
> flask run
|
||||||
|
* Running on http://127.0.0.1:5000/
|
||||||
|
|
||||||
|
.. group-tab:: Powershell
|
||||||
|
|
||||||
|
.. code-block:: text
|
||||||
|
|
||||||
|
> $env:FLASK_APP = "hello.py"
|
||||||
|
> flask run
|
||||||
|
* Running on http://127.0.0.1:5000/
|
||||||
|
|
||||||
This launches a very simple builtin server, which is good enough for
|
This launches a very simple builtin server, which is good enough for
|
||||||
testing but probably not what you want to use in production. For
|
testing but probably not what you want to use in production. For
|
||||||
|
|
@ -135,10 +146,28 @@ error occurs during a request.
|
||||||
To enable all development features, set the ``FLASK_ENV`` environment
|
To enable all development features, set the ``FLASK_ENV`` environment
|
||||||
variable to ``development`` before calling ``flask run``.
|
variable to ``development`` before calling ``flask run``.
|
||||||
|
|
||||||
.. code-block:: text
|
.. tabs::
|
||||||
|
|
||||||
$ export FLASK_ENV=development
|
.. group-tab:: Bash
|
||||||
$ flask run
|
|
||||||
|
.. code-block:: text
|
||||||
|
|
||||||
|
$ export FLASK_ENV=development
|
||||||
|
$ flask run
|
||||||
|
|
||||||
|
.. group-tab:: CMD
|
||||||
|
|
||||||
|
.. code-block:: text
|
||||||
|
|
||||||
|
> set FLASK_ENV=development
|
||||||
|
> flask run
|
||||||
|
|
||||||
|
.. group-tab:: Powershell
|
||||||
|
|
||||||
|
.. code-block:: text
|
||||||
|
|
||||||
|
> $env:FLASK_ENV = "development"
|
||||||
|
> flask run
|
||||||
|
|
||||||
See also:
|
See also:
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -23,11 +23,31 @@ development server. It requires setting the ``FLASK_APP`` environment
|
||||||
variable to point to your application, and ``FLASK_ENV=development`` to
|
variable to point to your application, and ``FLASK_ENV=development`` to
|
||||||
fully enable development mode.
|
fully enable development mode.
|
||||||
|
|
||||||
.. code-block:: text
|
.. tabs::
|
||||||
|
|
||||||
$ export FLASK_APP=hello
|
.. group-tab:: Bash
|
||||||
$ export FLASK_ENV=development
|
|
||||||
$ flask run
|
.. code-block:: text
|
||||||
|
|
||||||
|
$ export FLASK_APP=hello
|
||||||
|
$ export FLASK_ENV=development
|
||||||
|
$ flask run
|
||||||
|
|
||||||
|
.. group-tab:: CMD
|
||||||
|
|
||||||
|
.. code-block:: text
|
||||||
|
|
||||||
|
> set FLASK_APP=hello
|
||||||
|
> set FLASK_ENV=development
|
||||||
|
> flask run
|
||||||
|
|
||||||
|
.. group-tab:: Powershell
|
||||||
|
|
||||||
|
.. code-block:: text
|
||||||
|
|
||||||
|
> $env:FLASK_APP = "hello"
|
||||||
|
> $env:FLASK_ENV = "development"
|
||||||
|
> flask run
|
||||||
|
|
||||||
This enables the development environment, including the interactive
|
This enables the development environment, including the interactive
|
||||||
debugger and reloader, and then starts the server on
|
debugger and reloader, and then starts the server on
|
||||||
|
|
|
||||||
|
|
@ -48,10 +48,28 @@ Pip will install your project along with its dependencies.
|
||||||
Since this is a different machine, you need to run ``init-db`` again to
|
Since this is a different machine, you need to run ``init-db`` again to
|
||||||
create the database in the instance folder.
|
create the database in the instance folder.
|
||||||
|
|
||||||
.. code-block:: none
|
.. tabs::
|
||||||
|
|
||||||
$ export FLASK_APP=flaskr
|
.. group-tab:: Bash
|
||||||
$ flask init-db
|
|
||||||
|
.. code-block:: text
|
||||||
|
|
||||||
|
$ export FLASK_APP=flaskr
|
||||||
|
$ flask init-db
|
||||||
|
|
||||||
|
.. group-tab:: CMD
|
||||||
|
|
||||||
|
.. code-block:: text
|
||||||
|
|
||||||
|
> set FLASK_APP=flaskr
|
||||||
|
> flask init-db
|
||||||
|
|
||||||
|
.. group-tab:: Powershell
|
||||||
|
|
||||||
|
.. code-block:: text
|
||||||
|
|
||||||
|
> $env:FLASK_APP = "flaskr"
|
||||||
|
> flask init-db
|
||||||
|
|
||||||
When Flask detects that it's installed (not in editable mode), it uses
|
When Flask detects that it's installed (not in editable mode), it uses
|
||||||
a different directory for the instance folder. You can find it at
|
a different directory for the instance folder. You can find it at
|
||||||
|
|
|
||||||
|
|
@ -135,29 +135,31 @@ exception, and restarts the server whenever you make changes to the
|
||||||
code. You can leave it running and just reload the browser page as you
|
code. You can leave it running and just reload the browser page as you
|
||||||
follow the tutorial.
|
follow the tutorial.
|
||||||
|
|
||||||
For Linux and Mac:
|
.. tabs::
|
||||||
|
|
||||||
.. code-block:: none
|
.. group-tab:: Bash
|
||||||
|
|
||||||
$ export FLASK_APP=flaskr
|
.. code-block:: text
|
||||||
$ export FLASK_ENV=development
|
|
||||||
$ flask run
|
|
||||||
|
|
||||||
For Windows cmd, use ``set`` instead of ``export``:
|
$ export FLASK_APP=flaskr
|
||||||
|
$ export FLASK_ENV=development
|
||||||
|
$ flask run
|
||||||
|
|
||||||
.. code-block:: none
|
.. group-tab:: CMD
|
||||||
|
|
||||||
> set FLASK_APP=flaskr
|
.. code-block:: text
|
||||||
> set FLASK_ENV=development
|
|
||||||
> flask run
|
|
||||||
|
|
||||||
For Windows PowerShell, use ``$env:`` instead of ``export``:
|
> set FLASK_APP=flaskr
|
||||||
|
> set FLASK_ENV=development
|
||||||
|
> flask run
|
||||||
|
|
||||||
.. code-block:: none
|
.. group-tab:: Powershell
|
||||||
|
|
||||||
> $env:FLASK_APP = "flaskr"
|
.. code-block:: text
|
||||||
> $env:FLASK_ENV = "development"
|
|
||||||
> flask run
|
> $env:FLASK_APP = "flaskr"
|
||||||
|
> $env:FLASK_ENV = "development"
|
||||||
|
> flask run
|
||||||
|
|
||||||
You'll see output similar to this:
|
You'll see output similar to this:
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -3,3 +3,4 @@ packaging
|
||||||
Sphinx
|
Sphinx
|
||||||
sphinx-issues
|
sphinx-issues
|
||||||
sphinxcontrib-log-cabinet
|
sphinxcontrib-log-cabinet
|
||||||
|
sphinx-tabs
|
||||||
|
|
|
||||||
|
|
@ -8,9 +8,11 @@ alabaster==0.7.12 # via sphinx
|
||||||
babel==2.8.0 # via sphinx
|
babel==2.8.0 # via sphinx
|
||||||
certifi==2020.4.5.1 # via requests
|
certifi==2020.4.5.1 # via requests
|
||||||
chardet==3.0.4 # via requests
|
chardet==3.0.4 # via requests
|
||||||
|
colorama==0.4.3 # via sphinx
|
||||||
docutils==0.16 # via sphinx
|
docutils==0.16 # via sphinx
|
||||||
idna==2.9 # via requests
|
idna==2.9 # via requests
|
||||||
imagesize==1.2.0 # via sphinx
|
imagesize==1.2.0 # via sphinx
|
||||||
|
importlib-metadata==1.7.0 # via pallets-sphinx-themes
|
||||||
jinja2==2.11.2 # via sphinx
|
jinja2==2.11.2 # via sphinx
|
||||||
markupsafe==1.1.1 # via jinja2
|
markupsafe==1.1.1 # via jinja2
|
||||||
packaging==20.4 # via -r requirements/docs.in, pallets-sphinx-themes, sphinx
|
packaging==20.4 # via -r requirements/docs.in, pallets-sphinx-themes, sphinx
|
||||||
|
|
@ -22,7 +24,8 @@ requests==2.23.0 # via sphinx
|
||||||
six==1.15.0 # via packaging
|
six==1.15.0 # via packaging
|
||||||
snowballstemmer==2.0.0 # via sphinx
|
snowballstemmer==2.0.0 # via sphinx
|
||||||
sphinx-issues==1.2.0 # via -r requirements/docs.in
|
sphinx-issues==1.2.0 # via -r requirements/docs.in
|
||||||
sphinx==3.2.1 # via -r requirements/docs.in, pallets-sphinx-themes, sphinx-issues, sphinxcontrib-log-cabinet
|
sphinx-tabs==1.1.13 # via -r requirements/docs.in
|
||||||
|
sphinx==3.2.1 # via -r requirements/docs.in, pallets-sphinx-themes, sphinx-issues, sphinx-tabs, sphinxcontrib-log-cabinet
|
||||||
sphinxcontrib-applehelp==1.0.2 # via sphinx
|
sphinxcontrib-applehelp==1.0.2 # via sphinx
|
||||||
sphinxcontrib-devhelp==1.0.2 # via sphinx
|
sphinxcontrib-devhelp==1.0.2 # via sphinx
|
||||||
sphinxcontrib-htmlhelp==1.0.3 # via sphinx
|
sphinxcontrib-htmlhelp==1.0.3 # via sphinx
|
||||||
|
|
@ -31,6 +34,7 @@ sphinxcontrib-log-cabinet==1.0.1 # via -r requirements/docs.in
|
||||||
sphinxcontrib-qthelp==1.0.3 # via sphinx
|
sphinxcontrib-qthelp==1.0.3 # via sphinx
|
||||||
sphinxcontrib-serializinghtml==1.1.4 # via sphinx
|
sphinxcontrib-serializinghtml==1.1.4 # via sphinx
|
||||||
urllib3==1.25.9 # via requests
|
urllib3==1.25.9 # via requests
|
||||||
|
zipp==3.1.0 # via importlib-metadata
|
||||||
|
|
||||||
# The following packages are considered to be unsafe in a requirements file:
|
# The following packages are considered to be unsafe in a requirements file:
|
||||||
# setuptools
|
# setuptools
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue