Advertisement

Flask学习笔记:路由和反向路由

阅读量:
复制代码
 #-*- coding:utf-8 -*-

    
 from flask import Flask, request, url_for
    
  
    
 app = Flask(__name__)
    
 # 路由
    
 @app.route("/")
    
 # 视图函数
    
 def index():
    
     return "<h1>Hello World!</h1>"
    
 # 新的user路由
    
 @app.route("/user", methods = ['POST'])
    
 def hello_user():
    
     return "<h1>Hello User!</h1>"
    
 # 动态路由。使用<>圈起来,输入网址时输入
    
 @app.route("/users/<id>")
    
 # 传入id参数
    
 def user_id(id):
    
     return "<h1>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()
    
    
    
    
    python
    
    
![](https://ad.itadn.com/c/weblog/blog-img/images/2025-07-11/Dv6JjWVA1BiO8G3NdlQzRKLk2nE5.png)

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

复制代码
 # 路由

    
 @app.route("/")
    
 # 视图函数
    
 def index():
    
     return "<h1>Hello World!</h1>"
    
    
    
    
    python
    
    

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

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

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

复制代码
 # 新的user路由

    
 @app.route("/user", methods = ['POST'])
    
 def hello_user():
    
     return "<h1>Hello User!</h1>"
    
    
    
    
    python
    
    

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

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

    
 @app.route("/users/<id>")
    
 # 传入id参数
    
 def user_id(id):
    
     return "<h1>Hello user: " + id
    
    
    
    
    python
    
    

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

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

复制代码
 # 也可以不传参显示动态参数

    
 @app.route("/query_user")
    
 def query_user():
    
     id = request.args.get('id')
    
     return "query_user: " + id
    
    
    
    
    python
    
    

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

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

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

    
 @app.route("/query_url")
    
 def query_url():
    
     return "query_url: " + url_for('query_user')
    
    
    
    
    python
    
    

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

这里用到了chrome浏览器的一个postman插件,具体安装方法参考https://segmentfault.com/a/1190000008512891

全部评论 (0)

还没有任何评论哟~