大约还有二十天假期时间,这二十天我准备跟进一个Flask入门系列,大致会分为10-12篇文章。虽然我以后不想做开发,但是Web开发热度还是挺高的,所以就用了一段时间学习了一下,下学期也会有与Web有关的课程,如果对Flask感兴趣的话,可以持续跟进,希望这个系列可以帮到伙伴们。
第一篇主要包括两个方面,一方面是学习Flask之前的准备工作,比如配置相应的环境以及下载一些工具;另一方面就是编写第一个Flask简易程序。
Flask是支持Python2 和 Python3两个版本的,但是在我接触Python的时候已经更新到3.6了,所以我也没有关注Python2。我相信伙伴们应该也大多都在用Python3,所以这个系列会以Python3为基础,Flask的版本使用最新的即可。
这里只对Flask做一个简要的介绍:Flask是一个微框架,本身相当于一个内核,只保留了核心功能:请求响应处理和模板渲染。这两个功能分别有Werkzeug和Jinja实现,Flask本身也包装了这两个依赖,然后Flask还拥有很多扩展包,用户可以根据自己的需求导入扩展包实现相应的功能,这也是Flask框架灵活的原因。
Git下载
首先对于Windows用户,推荐下载Git这个工具,虽然很多功能我们在终端也可以实现,但在某些方面上讲使用Git的命令会更加方便,而且它也可以用来记录编写程序的源码和文件的变动情况,Git的下载安装教程可以参考这篇博客:Windows系统安装教程。
下载安装完成之后,在搜索栏找到Git Bash,运行时候输入git --version,如果出现对应的版本信息则代表安装成功。
配置虚拟环境
虚拟环境是一种独立于Python全局环境的Python解释器环境,比如一个虚拟环境中的解释器版本可以为Python2,另一个的解释器版本可以为Python3,它们之间是不会相互干扰的,而且也不会受你电脑中Python环境的影响。
配置虚拟环境是很必要的操作,因为不同的程序依赖语言的版本可能会不同,但如果在一台电脑中下载多个版本Python解释器,就会导致全局环境杂乱,虚拟环境很好的解决了这个问题,也便于管理我们的程序。
Python3中内置的venv模块可以创建虚拟环境,首先在系统自带的cmd中通过cd指令进入到指定的文件中,需要注意的是这个路径不能包含中文,然后使用下面指令创建一个虚拟环境。
代码语言:txt复制python -m venv env
其中env为虚拟环境的名称,可以自己拟定。这时会在当前目录下生成一个包含了Python解释器的虚拟环境文件夹,然后在Scripts文件下有两个.bat文件,这两个文件就控制着激活虚拟环境和退出虚拟环境。
通过下面指令就可以激活虚拟环境和退出虚拟环境:
代码语言:txt复制envScriptsactivate#激活
envScriptsdeactivate#退出
或者也可以直接进入Scripts目录下直接输入activate或者deactivae即可,当目录前出现下面这种小括号形式就代表激活虚拟环境成功。
代码语言:txt复制(env)
然后就可以通过pip在虚拟环境中安装Flask,不用指定版本,默认安装最新版本。
代码语言:txt复制 pip install flask
第一个flask程序
编写一个flask程序是非常简单的,仅仅几行代码就可以实现,流程大致可以分为以下五步:
- 1、从flask包中导入Flask类#从flask包中导入Flask类 from flask import Flask #创建flask的应用对象 app = Flask(__name__) @app.route('/') def hello(): """定义视图函数""" return 'Hello NaiTangMao' if __name__ == "__main__": #启动flask程序 app.run()运行上面这段程序会给出下面的结果,我们先关注红字部分的网址,会发现这是我们本地主机的IP地址,在运行一个flask程序后,他会默认监听主机的5000端口。
- 2、实例化Flask类,创建一个应用对象
- 3、定义视图函数
- 4、为视图函数添加装饰器(定义路由)
- 5、启动flask程序
Copy一下网址利用浏览器打开就会出现我们视图函数中返回的信息:
这个flask程序处理过程如下:
- 1、首先用户启动程序,并访问对应的网址。
- 2、服务器解析请求,识别装饰器中绑定的URL。
- 3、匹配URL并调用对应的视图函数。
- 4、获取视图函数的返回值,返回至客户端。
对于上面这几行代码需要掌握几个知识点,首先你应该明确app为Flask类实例化后创建的一个应用对象,但里面的name有什么作用呢?
name为当前模块名,因为flask程序在运行的时候需要静态文件和模板文件辅助,在你设置name之后,flask就会以当前模块(文件)所在目录为根目录,默认这个目录中的static为静态目录,templates为模板目录,因为是默认存在的,所以在根目录中并不会体现出来。不理解不要紧,后面还会涉及这两方面知识。
视图函数暂时不需要过多介绍,需要注意的是视图上面的装饰器app.route(),这个装饰器可以为视图函数绑定一个URL,当用户访问这个URL时会触发对应的视图函数,其中'/'代表根地址,我们还可以在根地址后设置额外路径,比如app.route('/hello')。
这时如果我们在访问原来那个网址就会出现Not Found的错误提示,此时必须要访问http://127.0.0.1:5000/hello才能触发视图函数。
一个视图函数也可以同时绑定多个URL,这通过为视图函数添加多个装饰器实现:
代码语言:txt复制@app.route('/')
@app.route('/hello')
def hello():
"""定义视图函数"""
return 'Hello NaiTangMao'
也就是说现在不论我们访问http://127.0.0.1:5000/ 还是 http://127.0.0.1:5000/hello都可以触发这个视图函数。
综上为Flask入门系列的第一篇,主要介绍虚拟环境的配置以及简易flask程序构成部分的简要解析。
本文参考资料: 1.《Flask入门教程》.李辉著 2.https://www.bilibili.com/video/BV1yt4y1Q7k5?p=5
3.Flask中英文档
如果你对这个系列感兴趣,欢迎关注公众号【奶糖猫】第一时间跟进后续更新~