使用Python的“Flask”框架尝试打印“Hello World”
简述
我之前没有在Python中开发Web应用程序的经验,所以我尝试使用Flask框架来进行一些学习和创建。
本文是关于最基本的Hello World实现。
Flask是什么
Flask文档
Flask中文文档
Flask是一个用Python编写的微型Web框架。微型框架是指保持核心功能的同时具有扩展性的解释。它具有许多扩展功能,并且可以根据需要进行添加,从而具有很高的自由度。此外,使用最基本的功能所需的学习成本很低,任何人都可以立即使用。
从实施角度来看,Django作为一个全栈框架实现了许多开发所需的功能。
开发环境
Windows10操作系统
Docker版本为20.10.7
Visual Studio Code版本为1.7.1
我正在使用Docker构建CentOS7环境,并在容器内进行创建。
事先安排
我们将继续进行使用Flask的准备工作。
启动容器
本次我们将使用已发布的CentOS7 Docker镜像构建容器。
执行Docker镜像获取和容器启动。
# Dockerイメージ取得
$ docker pull centos:centos7
centos7: Pulling from library/centos
2d473b07cdd5: Already exists
Digest: sha256:c73f515d06b0fa07bb18d8202035e739a494ce760aa73129f60f4bf2bd22b407
Status: Downloaded newer image for centos:centos7
docker.io/library/centos:centos7
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
centos centos7 eeb6ee3f44bd 11 months ago 204MB
# コンテナ起動
$ docker run -it -d --name centos7 centos:centos7
c4e8532de5f720c60097a7eef5cf33b049dffc4122d68dfd41ff9887ceeced46
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c4e8532de5f7 centos:centos7 "/bin/bash" 35 seconds ago Up 32 seconds centos7
准备Python环境
从这里开始,将在容器内进行操作。
如果尚未安装,请进行Python的安装。
这次安装的是Python 3.6.8。
# python3のインストール
$ yum install -y python3
-- 省略 --
$ python --version
Python 3.6.8
使用venv构建和激活虚拟环境。
虚拟环境的名称设为venv。
# 作業ディレクトリに移動
$ cd working_dir
# 仮想環境venvの作成
$ python3 -m venv venv
# 仮想環境venvの有効化
$ source venv/bin/activate
在虚拟环境中安装Flask。
安装完成后,可以使用Flask命令。
准备工作已经完成。
# flaskのインストール
(venv)$ pip install flask
Flask规格
关于环境变量的内容
您可以使用两个环境变量来控制Flask。
您可以事先使用export设置环境变量,或通过.env文件进行管理。
-
- FLASK_APP : アプリ起動時に実行するソースを指定する
- FLASK_ENV : 開発か本番か指定する(development or production)
而且,当有.env文件存在时,运行应用程序后,应用程序的根目录将成为.env文件所在的目录。
编写源代码
我們主要透過將請求的URI與函數綁定來進行路由。通過在函數開頭添加一個稱為@app.route()的裝飾器,可以添加路由。
from flask import Flask
app = Flask(__name__)
# http://127.0.0.1:5000にアクセスしたときに呼び出される
@app.route("/")
def index():
return "Hello Flask!"
# http://127.0.0.1:5000/helloにアクセスしたときに呼び出される
@app.route("/hello")
def hello():
return "Hello Wolrd!"
可以使用Flask的routes命令来确认已创建的路由。
我们需要确认已经创建了两个路由:index和hello。
(venv) $ flask routes
Endpoint Methods Rule
-------------- --------- -----------------------
hello GET /hello
index GET /
static GET /static/<path:filename>
执行应用程序
可以将hello.py设置为环境变量FLASK_APP。
为了开发目的,将环境变量FLASK_ENV设置为development。
$ export FLASK_APP=hello.py
$ export FLASK_ENV=development
你可以使用 flask run 命令来运行。
$ flask run
* Serving Flask app 'hello.py' (lazy loading)
* Environment: development
* Debug mode: on
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
* Restarting with stat
* Debugger is active!
* Debugger PIN: XXX-XXX-XXX
如果访问 http://127.0.0.1:5000,显示“Hello Flask!”则表示正常。
如果访问 http://127.0.0.1:5000/hello,将显示“Hello World!”。
整理
要在Flask上创建Hello World应用程序,按以下步骤即可。
-
- 安装Flask框架
-
- 使用代码实现路由
-
- 设置环境变量
- 启动应用
如果有方便的要点,我计划在另一篇文章中进一步发布。
引用文献
使用Python的Flask进行Web应用程序开发入门
作者:佐藤昌基,平田哲也
监修:寺田学