一、什么是Flask框架?
Flask是一个使用 Python 编写的轻量级 Web 应用框架,它比较适合一些分层比较少,逻辑不怎么复杂的web项目。
二、Flask框架的核心
werkzeug(路由模块,实现路由、调试和Web服务器网关接口):
Jinja2(模板引擎)
三、创建一个简单的hello world程序
1、初始化
#导入Flask
from flask import Flask
#创建Flask的应用程序
app= Flask(__name__)
注:所有Flask应用都必须创建一个应用实例,即Flask类的对象。web服务器使用一种名为Web服务器网关接口(WSGI)的协议,把接收自客户端的所有请求都交给这个对象处理。
2、路由和视图函数
#使用装饰器路由去与视图函数进行关联
@app.route('/')
def index():
return 'hello world!'
注:客户端(如web浏览器)把请求发送给web服务器,web服务器再把请求发送给Flask应用实例。应用实例需要知道对每个URL的请求要运行哪些代码,所以保存了一个URL到python函数的映射关系,处理URL和函数之间关系的程序称为路由。
装饰器是Python语言的标准特性,惯常用法是把函数注册为事件处理程序,在特定事件发生时调用。
index()这样处理入站请求的函数称为视图函数,这个函数的返回值称为响应,是客户端接收到的内容。
3、web开发服务器:
命令行启动:
windows环境:
set FLASK_APP=hello.py
flask run
linux和mac环境:
export FLASK_APP=hello.py
flask run
通过编程的方式启动:
if __name__=='__main__'
#运行当前Flask应用程序
app.run()
注:Flask应用自带web开发服务器,通过flask run命令启动,这个命令在Flask_APP环境变量指定的python脚本中寻找应用实例。
4、动态路由
@app.route('/user/<name>')
def user(name):
return '<h1>Hello, {}!</h1>'.format(name)
5、调试模式
Flask应用可以在调试模式中运行,在这个模式下,开发服务器默认会加载两个便利的工具:重载器和调试器。
使用重载器后,Flask会监视项目中所有的源代码,发现变动时自动重启服务器。
调试器是一个基于web的工具,当应用抛出未处理的异常时,它会出现在浏览器中,此时web浏览器变成一个交互式栈跟踪,可以在里面审查源码,在调用栈的任何位置计算表达式。
debug模式默认关闭,开启debug模式方式:
命令行:
set FLASK_APP=hello.py
set FLASK_DEBUG=1
flask run
在linux和mac环境中使用export设置。
编程方式:
app.run(debug=True)
注:千万不要在服务器中启用调试模式,客户端通过调试器能请求执行远程代码,导致服务器遭到攻击。