闪电龟龟--笔记

万物寻其根,通其堵,便能解其困。
随笔 - 169, 文章 - 0, 评论 - 1, 阅读 - 79596
  博客园  :: 新随笔  :: 管理

路由和HTTP方法

Posted on   闪电龟龟  阅读(417)  评论(0编辑  收藏  举报
复制代码
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与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示