Flask初探

Flask简介

Flask是目前最流行的Python Web框架之一。其在GitHub上已拥有超过53000个Star,其灵活性和轻量级使得其备受开发者的青睐。

Flask发展历程

(以下表格选自《Flask Web 开发实战》,有删改、添加)

版本号 发布日期 主要变化说明
0 2010.4.1 前身愚人节玩笑deny.py诞生
0.0.1 2010.4.6 Flask诞生(非公开版本)
0.1 2010.4.16 Flask公开
0.2 2010.5.12 添加JSON支持及send_file()
0.3 2010.5.28 支持配置;继承了日志记录;flash消息支持分类
0.4 2010.6.18 新增TESTING标志
0.5 2010.7.6 Flask源码重构
0.6 2010.7.27 自动处理OPTIONS请求;添加make_response函数
0.7 2011.6.28 添加蓝本(Blueprint)支持;添加teardown_request的hook;支持基于类的视图
0.8 2011.9.29 引入新的session交互系统;添加before_first_request的hook;添加扩展系统flask.ext
0.9 2012.7.1 添加程序上下文flask.FLask.app_context();添加after_this_request的hook
0.10 2013.6.13 添加template_test和template_global方法;g对象存储到程序上下文中
0.11 2016.5.29 弃用flask.ext扩展系统;添加flask.cli及命令行支持,推荐使用flask run运行程序
0.12 2016.9.21 完善cli模块
1.0 2018.4.27 引入FLASK_ENV及自动发现应用程序实例的功能
2.0 2021.5.11 添加异步async支持,对部分API进行更改

这里扯句题外话,Flask 2.0的包大小可比1.0大,Flog是最先采用Flask 2.0的网站之一,之前网站硬盘用量一直在165MB左右,升级以后就飚到了240MB左右(而且性能还没有什么提升)。当然这点磁盘占用倒是不怎么要紧。

言归正传,读者可能已经注意到0.10-0.11期间经历了将近3年,那是因为Flask开发组成员在此期间正在开发为flask开发click这个命令行界面,因此花费了许多时间。

第一个应用程序

首先随便在哪(最好有个固定位置)创建一个目录名字叫做flask_learning,我们教程中的所有案例都会放在这个目录中,确保文件资源管理器或者Finder在这个目录下,然后

Windows:shift+右键选择powershell打开执行(>是提示符,不是命令的一部分)

> python -m venv venv
> Set-ExecutionPolicy RemoteSigned
> venv/Scripts/activate.ps1

Mac OS X或Linux:右键->打开终端($是提示符,不是命令的一部分)

$ python3 -m venv venv
$ source venv/bin/activate

如果你会命令行的话也可以直接执行相应命令。

继续在这个打开的命令行下,执行:

mkdir first_webapp
cd first_webapp
pip install flask
​
// Linux / Mac OS X
touch app.py
​
// Windows
ni app.py

如果下载很慢可以考虑设置阿里的镜像源:

pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/
pip config set install.trusted-host mirrors.aliyun.com

再运行pip install flask及之后的命令

 

如果vscode安装成功,继续在这个命令行中输入code .,这样能够在这个目录下打开vscode。

打开vscode(你这时应该已经配置好了Python扩展):

你会看到左边导航栏中出现了app.py,打开它(图中的M3是我的版本控制软件,不用管它)

在app.py中输入:

from flask import Flask
​
app = Flask(__name__)
​
@app.route("/")
def index():
    return "hello, flask"

如下图:

打开刚才那个命令行

输入flask run

打开浏览器,访问这个网址:http://localhost:5000

你可以看到:

如果看到这个,证明你成功了!

常见问题

  1. 命令行输出类似于command not found: flask的东西

    可能原因1:你没有激活虚拟环境

    应当

    $ source ../venv/bin/activate

    或者

    > ../venv/Scripts/activate.ps1

    可能原因2:你没有安装flask

    应当pip install flask

  2. Error: Could not locate a Flask application

可能原因:你在flask_learning这个目录运行了flask run,你应该先cd first_webappflask run

本节代码目录结构及要注意的点

flask_learning/  //你应该在这里激活虚拟环境
  first_webapp/  //你应该在这里运行flask run
    app.py

This post belongs to Column 「Flask入门教程」 .

0 comments
latest

No comments yet.