Flask学习笔记2--路由定义的基本方式

请求方式限定

使用methods参数指定可接受的请求方式,可以是多种

@app.route('/', methods=['GET','POST'])
def hello():
    return 'hello,world'

给路由传参示例

有时我们需要将同一类URL映射到同一个视图函数处理,比如:使用同一个视图函数来显示不同用户的订单信息。

路由传递的参数默认当作string处理

@app.route('/orders/<order_id>')
def hello_itheima(order_id):
    # 此处的逻辑:去查询数据库改用户的订单信息,并返回
    print(type(order_id)) # 类型为unicode
    return 'hello itcast %d' % order_id

这里指定int,会调用系统的路由转换进行匹配和转换。

  • 大致原理是将参数强制转换为int,如果成功,则可以进行路由匹配
  • 如果参数无法转换成功,就无法匹配该路由

这里写图片描述

示例代码如下:

# -*- coding:utf-8 -*-

# 1.导入Flask扩展
from flask import Flask

# 2.创建Flask应用程序实例
# 需要传入__name__,作用是为了确定资源所在的路径
app = Flask(__name__)


# 3.定义路由及视图函数
# Flask中定义路由是通过装饰器实现的
# 路由默认只支持GET,如果需要增加,需要自行指定
@app.route('/', methods=['GET', 'POST'])
def index():
    return 'hello flask'


# 使用同一个视图函数,来显示不同用户的订单信息
# <定义路由的参数>。<>内需要起个名字
@app.route('/orders/<int:order_id>')
def get_order_id(order_id):
    # 参数类型,默认是字符串,Unicode编码
    print(type(order_id))

    # 有时候,需要对路由做访问优化。订单ID应该是int类型

    # 需要在视图函数的()内填入参数名,那么后面的代码才能去使用
    return 'order_id %s' % order_id


# 4.启动程序
if __name__ == '__main__':
    # 执行了app.run就会将Flask程序运行在一个简易的服务器(Flask提供的,用于测试的)
    app.run()

程序运行结果如下:
这里写图片描述

这里写图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值