04 flask 路由参数

import os

from flask import Flask, escape, url_for, redirect, send_file

app = Flask(__name__)


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


@app.route('/login', redirect_to='/new_login')  # 不经过视图函数,直接永久重定向到新路由
def login():
    return 'login'


@app.route('/see/<str:args>')  # 动态路由参数
def see(args):
    return f'当前是第{args}页'


@app.route('/look/<args>')  # 动态路由参数利用send_file 限定访问目录和返回文件
def look(args):
    return send_file(os.path.join('upload', args))


@app.route('/user/<username>')
def profile(username):
    return '{}\'s profile'.format(escape(username))


# url_for() 函数用于构建指定函数的 URL。
# 它把函数名称作为第一个 参数。
# 它可以接受任意个关键字参数,每个关键字参数对应 URL 中的变量。未知变量 将添加到 URL 中作为查询参数。
with app.test_request_context():
    print(url_for('index'))
    print(url_for('login'))
    print(url_for('login', next='/'))
    print(url_for('profile', username='John Doe'))

# 输出结果
# /
# /login
# /login?next=/
# /user/John%20Doe

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

 

posted @ 2020-12-25 17:28  纸短情长lol  阅读(81)  评论(0编辑  收藏  举报