使用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应用程序,按以下步骤即可。

    1. 安装Flask框架

 

    1. 使用代码实现路由

 

    1. 设置环境变量

 

    启动应用

如果有方便的要点,我计划在另一篇文章中进一步发布。

引用文献

使用Python的Flask进行Web应用程序开发入门
作者:佐藤昌基,平田哲也
监修:寺田学

bannerAds