Hello, Flask!

1 搭设开发环境

1.1 创建应用目录

$ mkdir helloflask

$ cd hello

1.2 创建虚拟环境

虚拟环境非常有用,可以避免你安装的 Python 版本和包与系统预装的发生冲突。为每个项目单独创建虚拟环境,可以保证应用只能访问所在虚拟环境中的包,从而保持全局解释器的干净整洁,使其只作为创建更多虚拟环境的源。

安装 pipenv

$ pip install pipenv

使用 pipenv install 命令为当前项目创建虚拟环境:

$ pipenv install

显式激活虚拟环境:

$ pipenv shell

Windows 系统中使用 pipenv shell 激活虚拟环境时,虽然激活成功,但是命令行提示符前不会显示虚拟环境名称。

退出虚拟环境:

$ exit

考虑到 Windows 系统下命令行的问题,会搞不清楚是否处于虚拟环境中,推荐使用 pipenv run 命令,可以在不显式激活虚拟环境的情况下,使用虚拟环境下的各种命令。

具体如下图所示:

1.3 安装 Flask

$ pipenv install flask

2 Hello, Flask!

2.1 创建脚本

helloflask 目录下创建 app.py

from flask import Flask
app = Flask(__name__)

@app.route('/')
def index():
    return '<h1>Hello Flask!</h1>'
复制代码
2.2 启动服务器

$ pipenv run flask run (如果提前激活了虚拟环境,直接 flask run 就可以了)

flask run 命令运行的开发服务器默认会监听 http://127.0.0.1:5000 地址,当我们在浏览器访问该地址,会看到网页上显示 Hello Flask!

2.3 自动发现主模块

因为我们的主模块命名为 app.py,所以 flask run 会自动在其中寻找程序实例。如果我们把 app.py 改名为 hello.py,再运行 flask run,就会出现错误了:

错误提示当前目录下没找到 app.pywsgi.py 模块,也没有设置 FLASK_APP 环境变量值。

2.4 使用 python-dotenv 管理环境变量

设置环境变量很麻烦,临时环境变量,只对当前命令行有效,重启电脑后会清除,开发多个不同 Flask 应用,还要不停切换不同的值。

安装 python-dotenv 之后,Flask 在加载环境变量时,优先级是:手动设置的环境变量 > .env 中设置的环境变量 > .flaskenv 中设置的环境变量。

安装 python-dotenv

$ pipenv install python-dotenv

在当前目录下创建 .env.flaskenv 文件,Windows 下创建 . 开头的文件,可以用 .env. 作为文件名来创建。

.env 中写入:

FLASK_APP = hello.py
复制代码

再运行 pipenv run flask run,一切顺利。

2.5 设置开发环境

修改 hello.py

from flask import Flask
app = Flask(__name__)

@app.route('/')
def index():
    return '<h1>Hello World!</h1>'
复制代码

开发服务器并没有随着文件的改动而重启。

.flaskenv 中写入:

FLASK_ENV = development
复制代码

重启服务器,提示调试模式打开了,这时候再修改文件,服务器就会自动重启。

为了获得更好的体验,我们可以安装 watchdog 来监测文件的变动:

$pipenv install watchdog --dev

因为这个包只在开发时候用到,所以在安装命令后加 --dev 选项。

参考文档

1、《Flask Web 开发实战: 入门、进阶与原理解析》

2、《Flask Web开发:基于Python的Web应用开发实战(第2版)》

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值