Flask程序的基本结构
@(Flask)
初始化
程序实例是Flask类的对象。
常常用的代码是:
from flask import Flask
app = Flask(__name__)
Flask类的构造函数只有一个必须制定的参数:程序主模块或包的名字。
Flask用这个参数决定程序的根目录,以便稍后能找到相对于程序根目录的资源文件位置。
P.S : 后续会有更复杂些的初始化方式。
路由和视图函数
- 客户端将请求发送给Web服务器
- Web服务器将请求发送给**Flask程序实例**app
- app需要知道:对每个URL请求运行哪些代码,那么这个就需要映射关系,保存映射关系的程序是路由
定义路由器
最简便的方式:使用app.route
修饰器
@app.route('/')
def index(): #index()函数注册为程序根地址的处理程序
return '<h1>Hello World</h1>'
修饰器:Python语言的标准特性,可以使用不同的方式修改函数的行为。惯用做法是:使用修饰器把函数注册为事件的处理程序。
上例即为:
访问www.xxxx.com,会触发服务器调用index()
函数进行处理。
其中函数的返回值称之为响应。
index()
也称作:视图函数(View Function)。
视图函数的返回值可以是以下:
- 包含HTML的字符串
- 复杂的表单
一般来说,响应函数返回响应字符串不是好的写法,生成响应的正确方式后文会继续讲。
@app.route('/user/<name>')
def user(name):
return '<h1>Hello, %s!</h1>' %name
尖括号中的是动态内容,任何能匹配静态部分的URL都会映射到这个路由上。
视图函数将动态部分作为参数传入函数,因此这也是一种传参方式。
其中,动态部分,默认使用字符串,也可以用类型定义:/user/<int:id>
,仅仅匹配动态片段id为整数的URL。
Flask支持的动态类型
- int
- float
- path : 也是字符串,但不把斜线视作分隔符,会将其当做动态片段的一部分。
启动服务器 : run