flask常用函数之route()

一、route()路由

功能:将URL绑定到函数

用法:

@app.route(url, methods=['GET', 'POST'])   #url必填,methods非必填
def view_func():
    # 处理请求并返回响应

二、路由函数route()的使用

路由函数route()的调用有两种方式:静态路由和动态路由

方式1:静态路由

@app.route(“/xxx”) xxx为静态路径 如::/index ,可以返回一个值、字符串、页面等

from flask import Flask
app = Flask(__name__)

@app.route('/hello')
def hello_world():
    return 'Hello World'
    
@app.route('/hello')
def index():
    return render_template('hello.html')

if __name__ == '__main__':
    app.run(debug = True)

方式2:动态路由

采用<>中标记变量动态构造url地址

@app.route(“/”),这里xxx为不确定的路径

from flask import Flask
app = Flask(__name__)

@app.route('/user/<id>')
def hello_world(id):  # put application's code here
    if id == '1':
        return 'python'
    if id == str(2):
        return 'java'
    if id == '3':
        return 'flask'
    return 'Hello World!'

if __name__ == '__main__':
   app.run(debug = True)

注意:url地址传入的变量默认为字符串类型,一些情况需要格式转换后才能使用,也可以置于参数前将接收的参数转化为对应类型。如下:

string 接受任何不包含斜杠的文本
int 接受正整数
float 接受正浮点数
path 接受包含斜杠的文本
@app.route("/index/<int:id>",)
def index(id):
    if id == 1:
        return 'first'
    elif id == 2:
        return 'second'
    elif id == 3:
        return 'thrid'
    else:
        return 'hello world!'

if __name__=='__main__':
    app.run()

3、url地址更新

如果使用蓝图,蓝图中参数:url_prefix还可以统一调整url地址,格式如:form = Blueprint(‘formDis111’, name, url_prefix=“/news”)
则表示在该蓝图下,所有的url地址访问路径中都要加上xxx路径,即域名/xxx/路由

三、route()其它参数

methods: 当前视图函数支持的请求方式,不设置默认为GET;请求方式不区分大小写

  • methods=[‘GET’] 支持的请求方法为GET
  • methods=[‘POST’] 支持的请求方法为POST
  • methods=[‘GET’,‘POST’] 支持的请求方法为POST GET
  @app.route('/login', methods=['GET', 'POST'])  # 请求参数设置不区分大小写,源码中自动进行了upper
  def login():
      if request.method == 'GET':
          return render_template('login.html')
      elif request.method == 'POST':
          username = request.form.get('username')
          pwd = request.form.get('password')
          if username == 'admin01' and pwd== '123456':
              return 'login successed'
          else:
              return 'login failed!!!'

四、地址尾部的/

有时候我们在接口路径末尾加/和不加/的时候,访问是一致的,但有些加了/访问又报错,flask对路由尾部的/是有做处理的:

  • flask添加路由的尾部带有/:访问时加/和不加/效果是一样的
  • flask添加路由的尾部没有/:访问时加/访问会报错,未加/才能访问成功
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值