初识Flask 框架

186 阅读5分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第2天,点击查看活动详情

Flask介绍

Flask 是python轻量级(微)的web开发框架,相比较django,flask并没有在功能上有所欠缺,只不过更多的选择交给了开发者,如果做一个简单的web开发,比如公司年会内部抽奖系统。假如使用django,那开发者不得不创建一个项目目录,创建一个app,进行settings配置.......,但实际上,好多操作是冗余的。使用最少,最贴合项目的文件进行快速的开发,这个就是flask的优势。

在个人看来Flask类似武侠小说当中的匕首,放在高手手里,简单而致命,但是如果放在正常人手里,只能削苹果。Flask如果是0基础的开发者,很容易手足无措。所以我们聊flask的时候默认的认为读者是有Python基础的和前端基础的。

个人觉得,学习Flask和学习其他框架一样,要经历几个阶段:

1、认真的学习框架的所有功能,了解后端框架基本的请求流程,并且尝试合理的使用,这一点对于初学后端的同学很重要,在最初,尤其是0项目阶段,过渡的追求源码和二次开发很容易打击到自己。

2、对框架有一定的使用经验(至少1项目)之后,开始对框架使用的流程进行思考,可以将自己的想法熔接到框架的代码当中,比如最基本的Flask项目结构优化。

3、在对框架功能和流程特别熟练之后,那么就可以研究源码了,沿着Flask生命周期进行请求流程的分析,封装全局的组件,这个时候其实flask已经不是一个框架了,而是可以被灵活的使用在任何地方的一个模块。

这里只是个人的想法,不过还是建议初学的小伙伴,不要着急,先认真的把后端框架基本的请求流程,然后在进行提升。

沙箱环境

在工作当中的Flask开发场景,很难见到开发者使用默认的Python环境进行开发,原因很简单,环境独立对代码的可移植性和可以维护性都是有很大的帮助的,所以,Flask开发首先需要有一个沙箱环境,Flask和Python的venv环境配合使用的场景最多,所以Flask安装之前可以先尝试部署一个沙箱环境:

1、选一个自己认为舒服的全英文路径目录,然后打开命令行,创建沙箱环境:

python -m venv venv 

这里不必担心的是,venv沙箱环境在Python3.5之后已经是内置模块了,不用担心安装的问题

2、然后尝试激活这个沙箱环境,windows环境下需要执行venv/script/activate.bat, linux环境(centos)需要执行/venv/bin/activate

#windows
./venv/Script/activate.bat
#linux(centos)
source ./vevv/bin/activate 

执行完之后,再次看命令行前面有一个venv标识,那么这种情况就进入了沙箱环境,接下来无论是安装python包,还是运行项目,都会以这个小的Python环境为主,而不是全局的环境,这样的好处当然很明显,我们可以把爬虫项目,Flask项目,django项目的环境独立开,在迁移的时候和环境排错的时候不会影响到其他的项目,当然要注意三个个点:

1、venv环境的Python版本和创建venv环境的Python版本一致,你没有办法使用一个2.7的Python创建出一个3.7的venv

2、venv环境的迁移还是受到平台的影响的,比如从windows迁移到Linux上,会很麻烦。

3、沙箱环境自带的Pip版本不一定很高,如果不注意,那么在安装包的时候会吃苦,建议在沙箱创建成功之后习惯性的升级pip

pip install pip --upgrade

Flask安装

好了,沙箱环境有了,那么就开始按照Flask环境了,很简单,就是一个模块安装的步骤:

pip install flask

ok,执行完成就好了,然后开启flask的第一个项目hello Flask。、

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

运行脚本

* Serving Flask app 'main'
 * Debug mode: off
 * Running on http://127.0.0.1:5000
Press CTRL+C to quit

然后访问浏览器 http://127.0.0.1:5000

image-20221122231324179.png

ok完成,上面的代码很简单,但确实代表了Flask的核心概念,可以仔细把玩一下:

app = Flask(*name* ),这句代码创建了一个flask项目的实例,可以立即为一个flask WEB服务对象

@app.route("/"),一个装饰器函数,用来指出调用下面函数的地址,比如:@app.route("/hhh"),那么在浏览器上就可以通过访问http://127.0.0.1:5000/hhh来访问被装饰的函数

def index():return "Hello Flask" 这是一个视图函数,也可以看成一个普通的函数,就是处理用户请求的,用户访问@app.route指向的地址,就是调用这个函数,但是注意这个函数必须要有返回值。

app.run() 启动Python自带的轻量级HTTP服务器,这个服务器默认监听的主机就是127.0.0.1,端口就是5000,我们也可以通过host和port参数进行修改。

上面的连贯起来就是Flask的一个核心的操作流程,设置应用,配置访问地址,访问地址指向功能函数,功能函数返回结果,启动应用。

那Flask框架的介绍就先到这里,后续还会向大家介绍Flask其他的功能,还请各位大佬多多指点。