后端开发L1_学习笔记2_flask定义接口路由和视图函数

flask定义接口路由和视图函数

  • 路由

路由是将URL地址与应用程序中的函数相映射的过程。

  • 动态路由

@app.route('/user/<username>')

  • 动态路由+限定路由类型

路径中添加<类型:变量名>来限定变量的类型(:后不能带空格)


@app.route('/user/<string:username>')

  • 限定路由类型:

1.string: 是个可缺省值,只接受不包含斜杠的任何文本

2.int: 只接受正整数

3.float: 只接受正浮点数

4.path: 类似string,但可以接受斜杠

5.uuid: 只接受UUID字符串

  • 路由规则

Flask 的 URL 规则基于 Werkzeug 的路由模块。可以确保形成的 URL 是唯一的,并且基于 Apache 规定的先例。

这两个路由定义的例子看起来类似,其实是不一样的。

在第二个例子中,路由的尾部使用斜杠 (/)。因此,它成为一个规范的URL。这时 Flask 会自动进行重定向。当在浏览器的地址栏中不输入 / 时,会自动在尾部加上一个斜杠。也就是在浏览器的地址栏中输入 / 和不输入 /的效果是一样的。

而第一个例子中,路由的尾部没有 /。那么访问的时候,在浏览器的地址栏中不能输入 /,否则会产生 “Not Found” 的错误。这样可以保持 URL 唯一。


@app.route('/about')

def about():

return 'About Page'

@app.route('/hogwarts/')

def hello_hogwarts():

return 'Hello Hogwarts'

if __name__ == '__main__':

app.run()

  • flask定义接口路由和视图函数

创建一个基本的web应用程序:


#导入flask模块

from flask import Flask

#通过实例化Flask类并传入__name__参数,创建一个Flask应用程序app实例,__name__是一个特殊变量,表示当前模块的名称。

app = Flask(__name__)

#定义路由和视图函数

#使用@app.route("/")装饰器定义路由,并指定URL路径

@app.route("/")

#定义视图函数:用于处理指定URL路径的请求,并将函数的返回结果作为浏览器访问指定URL路径后的显示结果

def hello():

return "Hello Flask"

  • flask运行使用

#通过代码调用:通过app实例调用run()方法

if __name__ == "__main__":

#flask 服务启动

#轮询的等待方式,等待浏览器的请求

#直到ctrl+c停止

app.run()

#可通过访问:http://localhost:5000/ 在浏览器中查看结果。

通过windows命令运行,set FLASK_APP= 接的是一个.py文件名称

set FLASK_APP=hello

flask run

附: flask - 如何阅读Flask源码? - SegmentFault 思否