Flask-路由

2019-05-02  本文已影响0人  遇明不散

路由(route)

什么是路由
路由的体现
路由的基本表示
# app可以自定义
@app.route('/')
def index():
    reutrn "xxx"

@app.route('/login')
def login():
    return 'xxx'
带参数的路由
@app.route('/show/<name>')
def show(name):
    # 在函数中 name 表示的就是地址栏上传递过来的数据
    return 'xxx'
@app.route('/show/<name1>/<name2>')
def show2(name1,name2):
    reutrn 'xxx'
# <int:age>:表示age参数时一个整型的数值而并非默认的字符串
# Flask 中所支持的类型转换器
@app.route('/show/<name>/<int:age>')
def show(name,age):
    return 'xxx'
# 类型转换器     作用
# 缺省          字符串型,但不能有/(斜杠)
# int:          整型
# float:        浮点型
# path:         字符串型,可以有 / (斜杠)
from flask import Flask
app = Flask(__name__)

@app.route('/show1/<name>')
def show(name):
    return "<h1>姓名为:%s</h1>" % name

@app.route('/show2/<name>/<age>')
def show1(name,age):
    return "<h1>姓名为:%s,年龄是:%s </h1>" % (name,age)

@app.route('/show3/<name>/<int:age>')
def show2(name,age):
    return "<h1>指定类型->姓名为:%s,年龄是:%d </h1>" % (name,age)

if __name__ == "__main__":
    app.run(debug = True)
多URL的路由匹配

允许在一个视图处理函数中设置多个url路由规则

@app.route('/')
@app.route('/index')
def index():
    reutrn "xxx"
from flask import Flask
app = Flask(__name__)

@app.route('/')
@app.route('/index')
@app.route('/<int:page>')
# 缺省参数默认值设置为 None
def index(page = None):
    if page is None:
        page = 1
    return 'The page is %d' % page

if __name__ == "__main__":
    app.run(debug = True)
路由中设置HTTP请求方法

Flask路由规则也允许设置对应的请求方法,只有将匹配上请求方法的路径交给视图处理函数去执行

# @app.route('/post',methods=['GET'])
# 只有post请求方式允许访问 localhost:5000/post
@app.route('/post',methods=['POST'])
def post():
    return 'xxxx'
URL的反向解析
# 此函数,用于反向解析 url
# 第一个参数:指向函数名(通过@app.route()修饰的函数)
# 后续的参数:对应要构建的url上的变量
url_for() 

# 静态文件反向解析
url_for('static',filename='style.css')
@app.route('/')
def index():
    return "Index"
url_for('index')  # 结果为:/

@app.route('/show/<name>')
def show(name):
    reutrn "name:%s" % name
url_for('show',name='zsf') # 结果为:/show/zsf
上一篇 下一篇

猜你喜欢

热点阅读