Flask学习笔记(一)

Flask学习笔记 —— 初识Flask

什么是Flask (What is Flask)

Flask 是一个基于Python语言的微型服务器框架,其由 Armin Ronacher 于2010年4月1日提出。1 2其创始人 Armin Ronacher 为 Flask 设置了2个主要依赖 (main dependencies):

  1. Werkzeug 提供路由 (Routing),调试 (Debugging) 以及 WSGI工具箱
  2. Jinja2 为其提供模板引擎

Flask 没有原生地对数据库操作,表单认证以及用户认证等功能提供支持,但其具有优秀的扩展能力,开发者们可以根据需要使用第三方插件完成相应的功能或者根据自身需要开发第三方插件。

安装Flask (Flask Installation)

首先,先创建一个项目目录 /learnFlask/01/

> mkdir learnFlask
> cd learnFlask
> mkdir 01

创建虚拟环境

使用venv创建虚拟环境 3

首先,进入到刚刚创建好的项目根目录

> cd learnFlask

接着,运行

> python3 -m venv virtual-env-name

这里,virtual-env-name 是虚拟环境的名字,读者可以自行设置。运行命令行之后,就可以在当前目录下看见一个名为 virtual-env-name 的文件夹,这样,就安装好了虚拟环境。

接着,可以通过以下方式启动虚拟环境:

> source virtual-env-name/bin/activate
(virtual-env-name)> 

这样就启动了虚拟环境。如果需要退出虚拟环境,则可以通过以下命令:

(virtual-env-name)> deactivate
> 
使用Anaconda创建虚拟环境
> conda create -n virtual-env-name

这里,virtual-env-name 同样是虚拟环境的名字,读者可以自行设置。同时,也可以指定Python版本

> conda create -n virtual-env-name python=3.6

虚拟环境创建完毕后,可以通过

> source activate virtual-env-name

来启动虚拟环境。如果需要退出当前环境,可以输入

> source deactivate virtual-env-name

安装Flask

安装并启动虚拟环境之后,就可以开始安装 Flask

通过pip方式安装
> pip install flask
通过Anaconda安装
> conda install flask

在安装Flask的同时,5个依赖包也会被同时安装。

包名称说明相关链接
Jinja2Python模板渲染引擎文档
MarkupSafeHTML字符转义工具Github
WerkzeugPython WSGI工具集,负责响应和请求的处理,内置WSGI开发服务器,调试器和重载器文档
click命令行工具文档 Github
itsdangerous提供加密签名功能主页

安装完成之后,就可以开始写第一个 Flask 程序了。

第一个 Flask 程序

首先,进入到 learnFlask/01/ 文件夹下面,新建一个名为 app.py 的文件。

首先,导入 Flask

from flask import Flask

接着,创建一个 Flask 实例:

app = Flask(__name__)

这行代码通过 Flask 构造器创建了一个名为 app 的实例 (Instance),同时将主函数名称或包名称作为构造器参数 (一般用 Python 中的 __name__ 即可,Flask 可以利用这一参数确定应用位置)。服务器会将所有接收到的请求通过 WSGI (Web Server Gateway Interface) 协议发送给 app 实例处理。

接着,需要注册路由:

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

Flask 中,路由的含义是 URL 和控制函数之间的匹配规则。在上面的代码中,通过 Python 的装饰器 (Decorator) 来指定路由地址,也可以使用 app.add_url_rule() 方法来指定路由匹配规则:

def index():
	return '<h1>Hello World!</h1>'
	
app.add_url_rule('/', 'index', index)

每一个 URL 路径匹配一个视图函数 (View Function,例如上例中的 index() 函数)。而 / URL 指向了项目的根目录,如果该网站运行在 www.example-domain.com 的域名上,则该 URL 指向 https://www.example-domain.com/ 路径。

注意

  1. route() 装饰器的第一个参数(URL规则)用字符串表示,且必须以斜杠(/)开始。
  2. 这里的URL均为相对URL(内部URL)。

完整代码如下:

# 导入Flask
from flask import Flask

# 创建实例
app = Flask(__name__)

# 设置路由匹配规则
@app.route('/')
def index():
    return '<h1>Hello World!</h1>'

值得注意的是,在旧版本的Flask中,通常会加上

if __name__ == '__main__':
    app.run(debug=True)

这样一段代码,而在新版本的Flask中则不需要。


  1. Flask (web framework) Wikipedia ↩︎

  2. Flask website ↩︎

  3. Miguel Grinberg. Flask Web Development[M]. ↩︎

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值