flask第二十一篇——练习题

自定义url转化器

实现一个自定义的URL转换器,这个转换器需要满足的是获取从多少到多少的url,例如,你输入的地址是http://127.0.0.1:8000/1-5/,那么页面返回[1,2,3,4,5]

答案:

# coding: utf-8

from flask import Flask
from werkzeug.routing import BaseConverter

app = Flask(__name__)  # type: Flask
app.debug = True

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

class NumConverter(BaseConverter):

    regex = r'\d+-\d+'

    # 把url中的参数传到视图函数中,用to_python方法
    def to_python(self, value):
        tmp = value.split('-')
        if int(tmp[0]) < int(tmp[-1]):
            nums = range(int(tmp[0]), int(tmp[-1])+1)
            return str(nums)
        else:
            return u'请检查传入的参数'

    # 把类似[1,2,3]这样的列表转换成/1-3/这种url
    def to_url(self, value):
        min = value[0]
        max = value[-1]
        temp = '%s-%s' % (min, max)
        return temp

app.url_map.converters['num'] = NumConverter

@app.route('/login/<num: values>/')
def numList(values):
    return values

if __name__ == '__main__':
    app.run()

原文发布于微信公众号 - 自动化测试实战(gh_839e78b6ba28)

原文发表时间:2018-04-04

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏康怀帅的专栏

GitHub Pages 常见问题

本文列举了一些使用 GitHub Pages 遇到的问题及其解决方法。 资源 404 你可以使用以下方法中的一种来解决该问题。 禁用 jekyll 以 _下划线...

2883
来自专栏Java成神之路

Java微信开发_03_使用测试号进行开发

今天进行自定义菜单的开发时,发现公众号没有自定义菜单的权限。于是想到用测试号,但微信服务器如何区分你要请求的是公众号还是测试号呢。

753
来自专栏架构说

shell中用到的管道有什么作用?(进程间传递数据)

本周问题 来源 公司讨论qq群 执行命令 ps -ef | grep xxx | awk ‘{print $2}’ | xargs -i k...

2854
来自专栏蓝天

Exception in thread "main" java.lang.Error: Unresolved compilation problem

初学java,使用eclipse编译时,可能会遇到如下图所示的编译错误(Exception in thread "main" java.lang.Error:...

2260
来自专栏CaiRui

Python模块

简介: 模块:用一坨代码实现了某个功能的代码集合。分为三种: 自定义模块 第三方模块 内置模块 python去找模块的路径 ? 其中,第三方模块安装的位置 ? ...

2208
来自专栏大数据智能实战

module 'tensorflow.python.framework.fast_tensor_util' does not match runtime version 3.6问题解决

最近在重新用tensorflow 1.3.*或者1.4 的时候,发现了好多问题,主要是碰到了如题目所示的问题,目前网上没有什么好的解决办法。 ? 关于这个问题,...

25710
来自专栏python3

python3--中的进程操作--multiprocess模块

运行中的程序就是一个进程。所有的进程都是通过它的父进程来创建的。因此,运行起来的python程序也是一个进程,那么我们也可以在程序中再创建进程。多个进程可以实现...

961
来自专栏Hongten

hibernate中的java对象有几种状态,其相互关系如何(区别和相互转换)

花了一些时间理解hibernate中的java对象的几种状态,很容易就懂了,这里记录一下,分享给大家!!

1203
来自专栏Python小屋

Python自定义类支持with关键字

在任何语言中,文件操作都要遵循打开文件-操作文件-关闭文件,数据库操作也要遵循打开数据库连接-操作数据库-关闭数据库连接,网络编程中很多也具有同样的约定。下面的...

37913
来自专栏Kubernetes

docker volume源码分析

这是在docker v1.10.3版本的使用过程中,使用convoy 作为volume driver,在一次docker volume remove失败时,使我...

4136

扫码关注云+社区