Flask是一个用于网络开发的Python框架,你只需一个文件和五行代码就可以启动和运行!Flask也是创建API的好方法,你可以在一行代码中创建一个JSON API。Flask有许多强大的功能来帮助你快速开发网站。有一个模板系统,消息闪现,URL路由,支持服务静态文件,等等。在这个Flask教程中,我们将安装Flask并学习如何在Flask中创建一些路由。
安装Flask网络框架
安装Flask是一个简单的单行线,使用Python pip工具。
flask $pip install flask
为项目创建目录
让我们创建一个简单的目录来存放我们要用来测试Flask的Python文件。
flask $mkdir flask-tutorial
flask $cd flask-tutorial
在PyCharm中打开目录
我们可以打开该目录并添加一个hello.py文件来开始编写Flask代码。

创建一个Flask应用程序和路由
这段代码导入了Flask库,创建了一个应用程序,并为一个简单的Web服务器定义了主页。
from flask import Flask
app = Flask(__name__)
@app.route('/')
def home():
return 'Hello World!'
为了运行这个应用程序,我们需要在命令提示符下访问这个相同的目录,并使用flask run命令,下面是我们得到的结果。
flask-tutorial $flask run
* Environment: production
WARNING: This is a development server. Do not use it in a production deployment.
Use a production WSGI server instead.
* Debug mode: off
Usage: flask run [OPTIONS]
Error: Could not locate a Flask application. You did not provide the "FLASK_APP" environment variable, and a "wsgi.py" or "app.py" module was not found in the current directory.
有趣的是。Flask需要一个环境变量才能运行。在终端使用以下命令就可以轻松解决这个问题。
flask-tutorial $export FLASK_APP=hello
一旦这个问题解决了,让我们再试着运行一下服务器。
flask-tutorial $flask run
* Serving Flask app 'hello' (lazy loading)
* Environment: production
WARNING: This is a development server. Do not use it in a production deployment.
Use a production WSGI server instead.
* Debug mode: off
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
这看起来好了一些此外,在网络浏览器中访问给定的URL,我们可以看到路由正在工作

使用开发环境
当使用上述方法时,如果你对Flask应用程序进行了修改或添加了新的功能,它们将不会反映在运行的应用程序中。你需要关闭服务器,然后重新启动,以便将任何更改或更新导入到应用程序中。一个更简单的方法是使用开发环境,它可以自动检测软件的任何变化或更新,并为你重新加载服务器。我们可以通过一个环境变量这样做。
flask-tutorial $export FLASK_ENV=development
现在我们可以再次运行服务器,并注意到输出是不同的。现在应用程序被作为一个开发环境提供。
flask-tutorial $flask run
* Serving Flask app 'hello' (lazy loading)
* Environment: development
* Debug mode: on
* Restarting with stat
* Debugger is active!
* Debugger PIN: 743-600-024
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
当你对你的应用程序进行修改时,你会在终端看到Flask检测到该变化并相应地重新加载。
* Detected change in 'C:\\python\\flask\\flask-tutorial\\hello.py', reloading
* Restarting with stat
* Debugger is active!
* Debugger PIN: 743-600-024
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
在浏览器中检查结果显示我们确实对代码进行了修改。

创建更多的Flask路由
添加路由非常简单,我们需要做的就是再次使用Python装饰器,然后是一个新函数。这里突出显示了一个 "关于 "路由。
from flask import Flask
app = Flask(__name__)
@app.route('/')
def home():
return 'Hello Wonderful People!'
@app.route('/about')
def about():
return 'This is a tutorial Flask app on serving routes'
添加这段代码后,开发服务器会注意到这个变化,并为我们重新加载服务器。同时注意到,当你在网络浏览器中访问该应用程序时,你会在命令行中看到HTTP请求。
* Detected change in 'C:\\python\\flask\\flask-tutorial\\hello.py', reloading
* Restarting with stat
* Debugger is active!
* Debugger PIN: 743-600-024
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
127.0.0.1 - - [20/May/2021 10:10:01] "GET /about HTTP/1.1" 200 -

app.py
正如我们在上面运行flask应用程序时看到的,我们需要设置一个环境变量来指定哪个文件实际上是Flask应用程序的根。由于我们的文件被命名为hello.py,我们使用export FLASK_APP=hello来让Flask知道这是使用flask运行命令时要运行的文件。一个更简单的方法是直接将文件命名为app.py。Flask足够聪明,知道在目录中如果有一个名为app.py的文件,那么这就是它应该运行的默认应用程序。所以在这一点上,我们现在应该有一个app.py文件,其中包含以下代码,为两条独特的路线提供服务。主页,和关于页面。
app.py
from flask import Flask
app = Flask(__name__)
@app.route('/')
def home():
return 'Hello Wonderful People!'
@app.route('/about')
def about():
return 'This is a tutorial Flask app on serving routes'
