首先和大家说一下flask的组成,flask其实是werkzeug(路由和http处理)+SQLAlchemy(数据库)+Jinja2(模板)组成的,今天我们要看到的东西就是`werkzeug`里面的内容. 我们在代码里导入from werkzeug.routing import BaseConverter,然后进入BaseConverter中看一下这个方法的源码: 其中to_python方法的作用就是将你传过去的参数转换成对应类型的数据,比如你设置传参是uuid类型数据,那么当你传参以后,就会…
继续昨天的话题,今天我们来写一个手机号的转换器,方便大家理解 我们在`BaseConverter`源码里看到好多这种正则表达式: 正则表达式的目的就是规范匹配的规则,现在我们写一个简单的匹配手机号的正则,但是手机号不管是在`to_python`里还是在`to_url`里都是一个字符串,所以这次我们就不需要重写这两个方法了: # coding: utf-8 from flask import Flaskfrom werkzeug.routing import BaseConverterimport…
自定义URL转换器(在BaseConverter类外定义)from werkzeug.routing import BaseConverter定义类继承BaseConverter 实现类app.url_map.converters['关键字']=类to_python 方法是将函数解析过程交给类a+b -> [a,b],使用场景没使用url_forto_url 方法是将函数解析过程交给类[a,b] - > a+b 使用url_for…
django内置的url转换器,包括有int.str.uuid等等.但是有时候他们不能满足我们的需求,因此就需要使用自定义url转换器.自定义url转换器的五步:1.定义一个类,直接继承自object就可以2.在类中定义一个属性regex,这个属性是用来限制url转换器规则的正则表达式.3.实现to_python(self,value)方法,这个方法是将url中的值转换下,然后传给视图函数的.4.实现to_url(self,value)方法,这个方法是在做url反转的时候,将传进来的参数转换后拼…
自定义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.…
url传参可以限定参数的数据类型,例如:限定user_id数据类型为int @app.route('/user/<int:user_id>') def my_list(user_id): return '您输入的user_id为:{}'.format(user_id) 当我们传递的参数不是int类型的时候,页面访问该url就会返回404错误,我们可以来看下flask是如何定义这些数据类型的 首先导入BaseConverter from werkzeug.routing import BaseC…
url传参可以限定参数的数据类型,例如:限定user_id数据类型为int @app.route('/user/<int:user_id>') def my_list(user_id): return '您输入的user_id为:{}'.format(user_id) 当我们传递的参数不是int类型的时候,页面访问该url就会返回404错误,我们可以来看下flask是如何定义这些数据类型的 首先导入BaseConverter from werkzeug.routing import BaseC…
from werkzeug.routing import BaseConverter app = Flask(__name__) class TeleConveter(BaseConverter): regex = r'1[85734]\d{9}' @app.route('/tele/<tel:my_tel>/') def he(my_tel): return 'Hello World! %s'% my_tel class ListConveter(BaseConverter): def to…
基本使用 -url控制 -传统的url配置 url(r'^books/$', views.BookView.as_view()), url(r'^books/(?P<pk>\d+)$', views.BookDetailView.as_view()), -半自动 url(r'^publish/$', views.PublishView.as_view({'get':'list','post':'create'})), url(r'^publish/(?P<pk>\d+)/$', v…
自定义 url 转换器五个步骤: 定义一个类. 在类中定义一个属性  regex  ,这个属性是用来保存 url 转换器规则的正则表达式. 实现  to_python(self,value)  方法,将 url 中的值转换一下,然后传给视图函数的. 实现  to_url(self,value)  方法,做 url 反转的时候,将传进来的参数转换后拼接成一个正确的url. 将定义好的转换器,注册到django中. 例子:获取列表分类(/article/list/python+django+flas…