Flask(2):Flask的路由

文章目录

  • 1.写路由的注意点
  • 2.flask写路由的两种方式
  • 3.反向获取url
  • 4.路由传参
  • 5.路由的跳转

1.写路由的注意点

  • url应该以/ 开头
  • url写法 标准的是 / url /
  • 视图函数不能重名
  • 习惯: 将视图函数的名字命名为 路由的名字

2.flask写路由的两种方式

方式一:装饰器法

@app.route('/index')
def index():
    return 'hello world'

方法二:在外边实现源码的方法

查看route的源码,发现实际就是往路由方法里添加参数

Flask(2):Flask的路由_第1张图片

def hello():
    return 'hello'

app.add_url_rule(rule='/hello', view_func=hello)

3.反向获取url

  • 问题:当我们想在py文件中的函数内获取url的值
  • 解决:导入url_for模块,在route中通过endpoint给url起别名,通过模块url_for来获取
from flask import Flask, url_for

app = Flask(__name__)

# endpoint相当于给url起了别名,通过模块url_for来获取
@app.route('/index',endpoint='name1')
def index():
    print(url_for('name1'))
    print(url_for('name2'))
    return 'hello world'

@app.route('/login',endpoint='name2')
def login():
    return 'hello world'


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

一运行index页面,显示结果
在这里插入图片描述

4.路由传参

<> 叫转换器语法 默认为string类型

string 默认类型
int 整形
float 浮点型
path 包含斜杠的路径,通常用于路径的拼接
uuid 通用唯一识别码

①举例----默认传入字符串

Flask(2):Flask的路由_第2张图片

②举例----改变默认传入的类型
Flask(2):Flask的路由_第3张图片
③举例----传入path
Flask(2):Flask的路由_第4张图片
④举例----传入uuid
Flask(2):Flask的路由_第5张图片

5.路由的跳转

问题:比如我们以前开发了一个网站,网址是index,但是现在更新了,网址变为new_index,那么我们如何让以前的老用户输入原来的网址index,却进入我们的新的new_index页面呢?

from flask import Flask

app = Flask(__name__)

@app.route('/index/',redirect_to='/new_index/')
def index():
    return '老页面'

@app.route('/new_index/')
def login():
    return '新页面'


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

你可能感兴趣的:(Flask框架,Django和flask区别,配置使用flask,flask的路由)