php反向路由,Flask框架学习笔记之路由和反向路由详解【图文与实例】

本文实例讲述了Flask框架学习笔记之路由和反向路由。分享给大家供大家参考,具体如下:

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

from flask import Flask, request, url_for

app = Flask(__name__)

# 路由

@app.route("/")

# 视图函数

def index():

return "

Hello World!

"

# 新的user路由

@app.route("/user", methods = ['POST'])

def hello_user():

return "

Hello User!

"

# 动态路由。使用<>圈起来,输入网址时输入

@app.route("/users/")

# 传入id参数

def user_id(id):

return "

Hello user: " + id

# 也可以不传参显示动态参数

@app.route("/query_user")

def query_user():

id = request.args.get('id')

return "query_user: " + id

# 反向路由,通过视图函数反导出url地址

@app.route("/query_url")

def query_url():

return "query_url: " + url_for('query_user')

if __name__ == '__main__':

app.run()

最基础的路由:@app.route('/'),也为根路由,程序运行后使用浏览器打开http://127.0.0.1:5000/即可访问。

# 路由

@app.route("/")

# 视图函数

def index():

return "

Hello World!

"

41e051f29596312075529e4c44697204.png

视图函数就是被当前路由所修饰的函数,return返回html相关内容。

路由也可以修改当前的http方法来打开,flask路由默认的http方法是GET,这里使用methods=['POST']将http方法改为POST。

访问网页时要更改http方法:

# 新的user路由

@app.route("/user", methods = ['POST'])

def hello_user():

return "

Hello User!

"

9502442af1965c13806212e39a451ae1.png

flask路由也可接受动态参数,动态参数需要使用<>包裹表示。

# 动态路由。使用<>圈起来,输入网址时输入

@app.route("/users/")

# 传入id参数

def user_id(id):

return "

Hello user: " + id

7ac32f2c87347e8d252d4ae39837b6bb.png

需要在网址后输入任意合法的值来传入动态参数。

也可以使用request方法实现动态参数传递。

# 也可以不传参显示动态参数

@app.route("/query_user")

def query_user():

id = request.args.get('id')

return "query_user: " + id

bd389097e6c2d7239364103e7f7911eb.png

输入网址时最后要加上?id=任意值,即可达到目的。

反路由通过视图函数表现出url地址,需使用url_for方法指向一个url。

# 反向路由,通过视图函数反导出url地址

@app.route("/query_url")

def query_url():

return "query_url: " + url_for('query_user')

d52fa5136cf1d475303dbb9d75875db3.png

本质是根据函数名反向生成url,使用函数 url_for() 来针对一个特定的函数构建一个 URL。它能够接受函数名作为第一参数,以及一些关键字参数, 每一个关键字参数对应于 URL 规则的变量部分。未知变量部分被插入到 URL 中作为查询参数。

希望本文所述对大家基于flask框架的Python程序设计有所帮助。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值