Flask URL路由注册

先看一个例子

@app.route('/')
def hello_world():
    return 'Hello World!'


@app.route('/<username>')
def show_user(username):
    print(username)


@app.route('/post/<int:post_id>')
def show_post(post_id):
    print(post_id)


@app.route("/username")
def username():
    pass

访问localhost:5000/name,localhost:5000/name1等会匹配到show_user(),但访问localhost:5000/username会匹配到username()

尖括号<username>指定了路由中的变量部分,默认情况下,URL 中的变量部分接受任何不带斜线的字符串,而 <converter:name> 也可以指定不同的转换器

变量部分以关键字参数传递给视图函数。

下面的转换器是可用的:

关键字 解释
string 接受任何不带斜线的字符串(默认的转换器)
int 接受整数
float 同 int ,但是接受浮点数
path 和默认的相似,但也接受斜线

也可以为同一个函数定义多个规则,但必须唯一,如下

@app.route("/user/username")
@app.route("/username")
def username():
    pass

也可以使用flask.Flask.add_url_rule() 函数来定义规则,如下

def username():
    pass


app.add_url_rule('/user/username', view_func=username, methods=["GET"])
app.add_url_rule('/username', view_func=username, methods=["GET"])

以下是 route() 和 add_url_rule() 接受的参数。

参数 解释
rule 注册的 URL 规则的末端。如果没有显式地规定,Flask 本身假设末端的名称是视图函数的名称,。
view_func 当请求呈递到给定的末端时调用的函数。如果没有提供,可以在用在 view_functions 字典中以末端作为键名存储,来在之后设定函数。
defaults 规则默认值的字典。上面的示例介绍了默认值如何工作。
subdomain 当使用子域名匹配的时候,为子域名设定规则。如果没有给定,假定为默认的子域名。
**options 这些选项会被推送给底层的 Rule 对象。一个 Werkzeug 的变化是 method 选项的处理。methods是这个规则被限定的方法列表( GET , POST 等等)。默认情况下,规则只监听 GET (也隐式地监听 HEAD )。从 Flask 0.6 开始,OPTIONS 也被隐式地加入,并且做标准的请求处理。 它们需要作为关键字参数来给定

更多技术文章可关注个人公众号: 码农Fly

公众号二维码:
qrcode_for_gh_3d746d8ff050_258 (1).jpg
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,188评论 19 139
  • 22年12月更新:个人网站关停,如果仍旧对旧教程有兴趣参考 Github 的markdown内容[https://...
    tangyefei阅读 35,311评论 22 257
  • [TOC]一直想做源码阅读这件事,总感觉难度太高时间太少,可望不可见。最近正好时间充裕,决定试试做一下,并记录一下...
    何柯君阅读 12,032评论 3 98
  • 起跑之后如果发现鞋带开了,那就蹲下来系好,然后继续上路,这场比赛不是短跑,耽误几秒,不会让你错过太多的! 若你想学...
    Jfchris阅读 1,805评论 0 1
  • 感冒咳嗽,浑身没劲,呆在家里不想动。接近中午,才想起是老公的生日,于是给味多美打电话想要订个蛋糕,却被告知,第二天...
    暖暖育儿家阅读 5,259评论 46 79

友情链接更多精彩内容