Flask框架(三)- 路由基本定义
一.路由基本定义
@app.route('/demo1')
def demo1():
return 'demo1'
二.给路由传参示例
有时我们需要将同一类 URL 映射到同一个视图函数处理,比如:使用同一个视图函数来显示不同用户的个人信息。
@app.route('/user/<int:user_id>')
def user_info(user_id):
return 'the num is %d' % user_id
@app.route('/user/<path:user_id>')
def user_info(user_id):
return 'hello %s' % user_id
提示:之所以int,path可以接收整数,字符串,是由于werkzeug提供了IntegerConverter,PathConverter对应转换器.
三.指定请求方式
在 Flask 中,定义一个路由,默认的请求方式为:
- GET
- OPTIONS(自带)
- HEAD(自带)
如果想添加请求方试,那么可以使用methods指定,比如:
@app.route('/demo2', methods=['GET', 'POST'])
def demo2():
return request.method
四.使用PostMan对不同请求,进行测试
PostMan 是一款功能强大的网页调试与发送网页 HTTP 请求的 Chrome 插件,可以直接去对我们写出来的路由和视图函数进行调试,作为后端程序员是必须要知道的一个工具。
- 安装方式1:去 Chrome 商店直接搜索 PostMan 扩展程序进行安装
- 安装方式2:https://www.getpostman.com/ 官网下载桌面版
- 安装方式3:将已下载好的 PostMan 插件文件夹拖入到浏览器
打开 Chrome 的扩展程序页面,打开 开发者模式 选项  将插件文件夹拖入到浏览器(或者点击加载已解压的扩展程序选择文件夹) - 在 Mac 下生成桌面图标,可以点击启动
- 在 ubuntu 旧版的 Chrome 浏览器中会显示以下效果,可以直接点击启动
 - 使用 PostMan,打开之后,会弹出注册页面,选择下方的 Skip this,go straight to the app 进行程序

视图函数, 返回响应,有三种方式
一.使用jsonify,生成json, 数据响应体
@app.route('/demo4')
def demo4():
json_dict = {
"user_id": 10,
"user_name": "laowang"
}
return jsonify(json_dict)
二.使用redirect,url_for,生成文本响应体
- redirect重定向到 百度 官网
格式: redirect(‘地址’); 地址: 可以是外链地址, 可以是视图函数地址
@app.route('/demo5')
def demo5():
return redirect('http://www.itheima.com')
- url_for反解析:通过视图函数的名称,返回地址
格式: url_for(‘视图函数名’,key=value) 提示: url_for经常配合redirect使用,可以传递参数
@app.route('/demo1')
def demo1():
return 'demo1'
@app.route('/demo5')
def demo5():
return redirect(url_for('demo1'))
@app.route('/user/<int:user_id>')
def user_info(user_id):
return 'hello %d' % user_id
@app.route('/demo5')
def demo5():
return redirect(url_for('user_info', user_id=100))
三.返回字符串, 自定义状态码,返回文本响应体
- 在 Flask 中,可以很方便的返回自定义状态码,以实现不符合 http 协议的状态码,例如:status code: 666
@app.route('/demo6')
def demo6():
return '状态码为666', 666
|