`
bee1314
  • 浏览: 166206 次
  • 性别: Icon_minigender_1
  • 来自: 安徽
社区版块
存档分类
最新评论

Bottle 路由

阅读更多

 

上面的例子我们构建了一个简单的只有一个单独路由的应用。如果一个应用只能绑定一个路由是多么枯燥的事情。我们可以添加更多。

    @route("/")

    @route("/hello/<name>")

    def hello(name='Stranger'):

        return template("Hello {{name}}, How are you?", name=name)

    这个例子解释了两件事情:

        1. 你可以绑定一个或者多个路由到一个简单的回调,并且你可有添加占位符到URL并且通过关键字参数访问。

 

动态路由

    含有占位符的路由就被叫做动态路由(和静态路由相对立)并且可以匹配一个或者多个URL在同一时间。

    一个简单的占位符就是<>之间包含一个名字并且在下一个/之前包含一个或者多个字符。

    例如:路由/hello/<name>接受请求/hello/alice, 或者 /hello/bob, 但是不是/hello, /hello/, /hello/mr/smith

 

    每一个占位符传递URL中相关的部分作为一个关键字参数给请求的回调函数也就是route绑定的函数。

    你可以立刻使用这种方式去实现RESTful,漂亮的,有意义的URL。例如:

    @route('/wiki/<pagename>')             #match /wiki/Learning_Python

    def show_wiki_page(pagename):

        ....

 

    @route('/<action>/<user>')          #match /follow/bee1314

        ....

 

    在新的0.10版本。过滤器被用来定义更细节的占位符,或者在传递给回调函数之前转化URL中将要传递给回调函数的部分。

    一个过滤器占位符被声明如:<name:filter>或者<name:fiter:config>.可选config的部分的语法依赖于使用的filter。

    下面的filter就是已经默认实现的或者更多的将要被加入的:

    1. :int 只能匹配(signed有符号)数字并且将其值转化为integer整型。

    2. :float 只能匹配浮点型将其转化为decimal 数字。

    3. :path 匹配所有的字符包括/ 

    4. :re 允许你去制定一个自定义的正则表达式在config域中。

 

    @route('/object/<id:int>')

    def callback(id):

        assert isinstance(id, int)

 

    @route('/show/<name:re:[a-z]+>')

    def callback(name):

        assert name.isalpha()

 

    @route('/static/<path:path>')

    def callback(path):

        return static_file(path, ...)

分享到:
评论

相关推荐

    bottle学习

    1. **路由**:Bottle的路由系统基于URL模板,允许你将URL路径映射到特定的函数。例如,你可以定义`@route('/hello/&lt;name&gt;')`,这个路由会匹配所有形如`/hello/John`、`/hello/Mary`等URL,并将`&lt;name&gt;`部分作为参数...

    bottle web开发 项目实战:任务管理系统 V1.0.rar

    Bottle的核心概念是路由,通过URL映射到特定的处理函数,实现请求与响应的管理。 **2. 项目结构** 任务管理系统的项目结构通常会包括以下几个部分: - `views`:视图函数,负责处理HTTP请求并返回响应。 - `models`...

    bottle-master.zip

    3. **路由与中间件**:Bottle使用URL路由机制,通过装饰器定义路由规则,方便地将URL映射到处理函数。同时,它也支持自定义中间件,扩展框架功能。 4. **内置HTTP服务器**:Bottle内建了一个简单的HTTP服务器,方便...

    bottle-ueditor:Python Bottle 框架百度 UEditor 插件后台扩展

    3. **配置Bottle路由**:在你的`app.py`文件中,定义一个路由来处理UEditor的请求。例如,可以设置一个`/ueditor/upload`的路由来处理图片或文件上传: ```python from bottle import route, run, static_file ...

    Bottle: Python Web Framework - Doc HTML(zip)

    4. **URL路由**:Bottle使用简单的函数装饰器定义路由规则,通过URL路径来映射到相应的处理函数。 5. **模板引擎**:支持多种模板语言,如Jinja2和Mako,让开发者可以轻松地创建动态网页。 6. **WSGI兼容**:...

    python bottle v0.11中文文档

    - URL路由是Bottle的核心功能之一,它允许开发者将特定的URL请求与相应的Python处理函数关联起来。 - 通过这种方式,可以轻松地组织应用程序中的不同部分,并实现更加清晰和模块化的代码结构。 - 例如,在上述...

    bottle开发文档

    本文将深入探讨Bottle的核心功能与用法,包括路由、模板引擎、API参考、插件使用等关键知识点,帮助开发者全面掌握Bottle框架。 ### 路由:请求到函数调用的映射 Bottle提供了强大的路由机制,支持干净且动态的URL...

    留言簿代码(python 的一个bottle.py写的)

    Bottle通过装饰器定义路由,当用户访问特定URL时,对应的函数会被调用。比如,可能会有一个路由用于显示所有的留言,另一个用于提交新的留言。同时,文件中还会包含数据库的初始化、查询、插入和更新等操作。 最后...

    PyPI 官网下载 | bottle-0.11.6.tar.gz

    Bottle框架还提供了路由、模板渲染、HTTP请求处理、错误处理、插件支持等功能。它的轻量级特性使得开发者可以快速上手,同时也能应对复杂的应用需求。 总结来说,通过PyPI官网下载的bottle-0.11.6.tar.gz,让我们有...

    Python-bottledemo基于sqlite3和bottle使用示例

    Bottle的核心概念包括路由、视图和中间件。 路由是Bottle的核心,它是URL模式与处理函数之间的关联。例如,我们可以定义一个简单的路由来处理GET请求: ```python from bottle import route, run @route('/hello/...

    bottle-docs

    ### Bottle 微型 Web 框架概览 #### 一、框架介绍 Bottle 是一个用 Python 编写的快速、简单且轻量级的 WSGI 微型 Web 框架。它以单个文件模块的形式发布,并且除了 Python 标准库外没有任何依赖。这种设计使得 ...

    bottle web框架

    - `Bottle`类:作为Web应用的核心,用于注册路由和中间件。 - `Request`和`Response`类:处理HTTP请求和响应的对象。 - **装饰器**: - `@route`:用于定义路由处理函数。 - `@hook`:定义应用生命周期的钩子...

    python框架bottle使用文档

    Bottle框架的特性包括路由、模板、工具和服务器。 1. 路由(Routing):Bottle支持从请求到函数调用的映射,支持清晰和动态的URLs。这意味着你可以将不同的URL请求映射到不同的Python函数上,从而可以处理各种不同...

    bottle 111111

    1. **路由系统**:Bottle使用类似`@route('/path', method='GET')`的装饰器来定义URL路由,允许开发者根据URL路径和HTTP方法(如GET、POST)绑定不同的处理函数。 2. **模板引擎**:Bottle内置了基于字符串的简单...

    基于Bottle的Python网络应用开发.zip

    - **路由系统**:Bottle使用URL模板定义路由,将URL映射到处理函数。 - **内置模板引擎**:Bottle支持多种模板语言,如Bottle默认的SimpleTemplate,以及Jinja2等第三方模板引擎。 ### 2. 安装与基本使用 要开始...

    bottle文档PDF

    - **请求路由**:介绍如何使用 Bottle 的路由机制处理不同的 HTTP 请求,包括 GET、POST 等方法及路径参数的使用。 - **简单模板引擎**:介绍 Bottle 内置的模板引擎的使用方法,以及如何集成第三方模板引擎。 - **...

    QPython用Bottle搭建WebApp的那些烂坑.doc

    Bottle框架的核心特性之一就是它的路由系统,通过`@route`装饰器将URL映射到处理函数。然而,在实际操作中,开发者可能会遇到路由无法识别的情况。例如,尝试添加一个表单登录验证路由: ```python @route('/login'...

    bottle文档

    1. **路由 (Routing):** **Bottle** 支持将请求映射到函数调用,这包括支持干净和动态 URL 的功能。 - **示例:** `/hello/&lt;name&gt;` 这样的路由会根据 `&lt;name&gt;` 的值动态匹配 URL。 2. **模板 (Templates):** **...

    python教程之bottle web开发

    ### Python教程之Bottle Web开发 #### Bottle框架简介 Bottle是一个用Python编写的轻量级Web应用框架,因其简洁高效的特点,在小型项目或快速原型开发中被广泛使用。本教程将详细介绍如何使用Bottle框架进行Web...

Global site tag (gtag.js) - Google Analytics