from flask import Flask app = Flask(__name__) # # 路由用法 # @app.route('/') def hello_world(): # 这种方法再不传参的情况下可以使用,一般用在首页 # 导航栏:http://127.0.0.1:5000 return 'hello world!!!' @app.route('/hello') def hello_world1(): # 导航栏访问:http://127.0.0.1:5000/hello return 'hello world!!!' @app.route('/hello/<name>') def hello_world2(name): # 这里可以传递一个参数 # 导航栏访问:http://127.0.0.1:5000/hello/namejr return '{}, hello'.format(name) @app.route('/hello/<int:num>') def hello(num): # 可以指定参数的类型 # 导航栏访问:http://127.0.0.1:5000/hello/88 # 除了可以指定int(整形)之外,还可以指定:string(字符串,但值得注意的是不能够包含'/')、float(浮点型)、path(路径,与string的区别是这里可以包含'/')、uuid(uuid的字符串) # UUID是一种唯一识别码,其目的是让分布式系统中的所有元素,都能有唯一的辨识信息,而不需要通过中央控制端来做辨识信息的指定。(来源百度百科) return '{} is a number'.format(num)
关于url_for:
from flask import Flask, url_for app = Flask(__name__) # # 关于url_for # url_for用来可以直接获取对应函数名的路由路径 # 这样的好处就是不管你如何更改路径,只要函数名没有改变,使用url_for都能够直接的获取对应的路径 # @app.route('/') def index(): return url_for('hello') # 打印"/hello" @app.route('/hello') def hello(): return "hello True" if __name__ == '__main__': app.debug = True app.run()
我们可以使用test_request_content(test_request_content是一个用服务器来模拟用户发送请求的函数,实际上并没有用户发送数据)来测试一下
from flask import Flask, url_for app = Flask(__name__) # # 关于url_for # url_for用来可以直接获取对应函数名的路由路径 # 这样的好处就是不管你如何更改路径,只要函数名没有改变,使用url_for都能够直接的获取对应的路径 # @app.route('/') def index(): return url_for('hello') # 打印"/hello" @app.route('/hello/') def hello(): return "hello True" # 构建模拟情景 with app.test_request_context(): print(url_for('index')) # 打印"/" print(url_for('hello')) # 打印"/hello/" if __name__ == '__main__': app.debug = True app.run()
顺带一提:在编写路由的时候,你可以写成"@app.route('/hello/')",当然也可以写成"@app.route('/hello')",但是我最终建议还是写成前者,如果你访问的是"http://127.0.0.1:5000/hello",那么都可以访问,但是如果访问的是"http://127.0.0.1:5000/hello/"那么后者将会报出404("Not Found")错误,不信你试试,反正我试过了
PS:路由,不就是装饰器嘛
HTTP:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现