1. from flask import Flask
  2. app = Flask(__name__)
  3. #
  4. # 路由用法
  5. #
  6. @app.route('/')
  7. def hello_world():
  8. # 这种方法再不传参的情况下可以使用,一般用在首页
  9. # 导航栏:http://127.0.0.1:5000
  10. return 'hello world!!!'
  11.  
  12. @app.route('/hello')
  13. def hello_world1():
  14. # 导航栏访问:http://127.0.0.1:5000/hello
  15. return 'hello world!!!'
  16.  
  17. @app.route('/hello/<name>')
  18. def hello_world2(name):
  19. # 这里可以传递一个参数
  20. # 导航栏访问:http://127.0.0.1:5000/hello/namejr
  21. return '{}, hello'.format(name)
  22.  
  23. @app.route('/hello/<int:num>')
  24. def hello(num):
  25. # 可以指定参数的类型
  26. # 导航栏访问:http://127.0.0.1:5000/hello/88
  27. # 除了可以指定int(整形)之外,还可以指定:string(字符串,但值得注意的是不能够包含'/')、float(浮点型)、path(路径,与string的区别是这里可以包含'/')、uuid(uuid的字符串)
  28. # UUID是一种唯一识别码,其目的是让分布式系统中的所有元素,都能有唯一的辨识信息,而不需要通过中央控制端来做辨识信息的指定。(来源百度百科)
  29. return '{} is a number'.format(num)

关于url_for:

  1. from flask import Flask, url_for
  2. app = Flask(__name__)
  3. #
  4. # 关于url_for
  5. # url_for用来可以直接获取对应函数名的路由路径
  6. # 这样的好处就是不管你如何更改路径,只要函数名没有改变,使用url_for都能够直接的获取对应的路径
  7. #
  8. @app.route('/')
  9. def index():
  10. return url_for('hello') # 打印"/hello"
  11.  
  12. @app.route('/hello')
  13. def hello():
  14. return "hello True"
  15.  
  16. if __name__ == '__main__':
  17. app.debug = True
  18. app.run()

我们可以使用test_request_content(test_request_content是一个用服务器来模拟用户发送请求的函数,实际上并没有用户发送数据)来测试一下

  1. from flask import Flask, url_for
  2. app = Flask(__name__)
  3. #
  4. # 关于url_for
  5. # url_for用来可以直接获取对应函数名的路由路径
  6. # 这样的好处就是不管你如何更改路径,只要函数名没有改变,使用url_for都能够直接的获取对应的路径
  7. #
  8. @app.route('/')
  9. def index():
  10. return url_for('hello') # 打印"/hello"
  11.  
  12. @app.route('/hello/')
  13. def hello():
  14. return "hello True"
  15.  
  16. # 构建模拟情景
  17. with app.test_request_context():
  18. print(url_for('index')) # 打印"/"
  19. print(url_for('hello')) # 打印"/hello/"
  20.  
  21. if __name__ == '__main__':
  22. app.debug = True
  23. 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

路由和HTTP方法的更多相关文章

  1. mvc中多参数URL会很长,首次加载不传参数让url很短,路由规则实现方法[bubuko.com]

    如要实现列表中地址全路径“bubuko-11-2.html”,在首次进入时,使用短路径“bubuko.html”,只有再次href后才显示全路径“bubuko-11-2.html”,下面使用路由规则来 ...

  2. 建立tracert路由列表的方法

    建立tracert路由列表的方法:电脑屏幕左下方 选择开始选项运行 输入 CMD在DOS命令行下输入:tracert (你的网站域名)   运行结果中如出现了“*     *     *    req ...

  3. centos7 防火墙一些相关设置 开机添加静态路由 特殊的方法

    参考文献: https://access.redhat.com/documentation/zh-cn/red_hat_enterprise_linux/7/html/security_guide/s ...

  4. Redhat、CentOS添加静态路由的标准方法

    我们经常遇到需要在系统默认路由的基础上,额外添加静态路由的需求.为了使得下次系统启动这些静态路由依旧生效,我们可能采取在rc.loal里加入route命令追加静态路由的方法. 现在给大家推荐Redha ...

  5. 基于hi-nginx的web开发(python篇)——动态路由和请求方法

    hi.py的提供的路由装饰器接受两个参数,第一个参数指定动态路由的正则模式,第二个参数指定同意的http请求方法列表. 比如: @app.route(r"^/client/?$", ...

  6. 关于linux的添加永久静态路由的static-routes方法

    一:使用 route 命令添加 使用route 命令添加的路由,机器重启或者网卡重启后路由就失效了,方法: //添加到主机的路由 # route add –host 192.168.1.11 dev ...

  7. angular路由传参和获取路由参数的方法

    1.首先是需要导入的模块 import { Router } from "@angular/router";//路由传参用到 import{ActivatedRoute,Param ...

  8. 使用ASP.NET Core 3.x 构建 RESTful API - 3.2 路由和HTTP方法

    ASP.NET Core 3.x 的路由 路由机制会把一个请求的URI映射到一个Controller上面的Action,所以当你发送一个HTTP请求的时候,MVC框架会解析这个请求的URI,并尝试着把 ...

  9. Flutter中管理路由栈的方法和应用

    原文地址:https://www.jianshu.com/p/5df089d360e4 本文首先讲的Flutter中的路由,然后主要讲下Flutter中栈管理的几种方法. 了解下Route和Navig ...

随机推荐

  1. MySQL:数据库的基本操作

    第二篇.数据库的基本操作 一.创建数据库 附:创建数据库并不意味输入数据在这个数据库中,只有用切换数据库才可以输数据到这个数据库中. 1.创建数据库 格式:create database数据库名字 [ ...

  2. myql update from 语句

    (6)UPDATE 语句与 SELECT 语句中的 TOP 子句一起使用对来自表 authors 的前十个作者的 state 列进行更新 UPDATE authors SET state = 'ZZ' ...

  3. 使用Chrome调试工具抢阿里云免费套餐

    活动地址如下: https://free.aliyun.com/ntms/free/experience/getTrial.html 首先打开地址,需要登录,登陆后看到如下页面: 选择个人免费套餐,这 ...

  4. BUG_sql未解决bug

    [SQL]truncate table org_cert;受影响的行: 0时间: 0.021s [Err] 1055 - Expression #1 of ORDER BY clause is not ...

  5. 微软Power BI报表服务器学习总览

    今天,微软宣布了8月更新Power BI Report Server!此版本包含一些新功能,包括一些备受期待的项目,如报表主题,条件格式改进和报表页面工具提示. 报告 报告主题 用于触发操作的按钮 组 ...

  6. redis实现api限流

    redis官方给出了参考文档:INCR 这里参考第一种方法,使用token bucket实现:每个用户每秒有一个Counter: func RateLimiter(uid string, rlType ...

  7. HTML5 canvas 内部元素事件响应

    HTML5 canvas 内部元素事件响应 isPointInPath 只能拿当前上下文的路径 重画每个部分 都isPointInPath判断

  8. Arcgis发布服务

    1.文件<<共享为<<服务. 2.发布服务<<在下拉菜单选择已经创建的server连接,输入服务名称<<选择服务发布的位置(默认在根目录下,也可以在子文 ...

  9. 多行文本用textarea而不是input type=textarea“”

    <textarea name="zhaiyao" id="" cols="35" rows="4">< ...

  10. (1)什么是web框架和http协议

    Django是一个web框架 web框架的本质:就是一个socket服务端 bs架构本质上就是cs架构(cs架构就是client和server):bs架构就是browser和server,本质上bro ...