Flask中路由参数
Flask中路由参数、请求方式设置
一、参数设置
1.参数类型
Flask中参数的使用
@app.route('/parames/<username>/')
def hello_world3(username, age=20):
return username + ''
以上代表的是路径参数。
Flask中的参数:
1)都是关键字参数
2)默认标识是<>
3)username需要和对应的视图函数的参数名字保持一致。
4)参数允许有默认值:
如果有默认值,那么在路由中,不传输参数也是可以的。
如果没有默认值,参数在路由中必修传递。
5)参数默认类型是string,如果想修改为其它类型,如下
<参数类型:username>
# 设置username为int类型
<int:username>
参数语法
- string 默认类型,会将斜线认为是参数分隔符
- int 限制参数的类型是int类型
- float 显示参数对的类型是float类型
- path 接受到的数据格式是字符串,特性会将斜线认为是一个字符
2.未指定参数类型
在url中传入参数时,如果没有指定参数的类型,会默认为参数是string类型。
如下:
没有给id指定参数类型,id默认是string类型,想要对id做运算,就必须先转化成int类型,最后返回的内容必须是字符串,所以再转成string类型。
@house_blueprint.route('/<id>/')
def h(id):
id = int(id) ** 5
id = str(id)
return id
运行结果:

3.指定参数类型
(1)int、float类型
给参数指定类型,就在参数前加上参数类型和冒号即可。如下,指定id是int类型,可以直接进行运算。
@house_blueprint.route('/<int:id>/')
def h(id):
id = id ** 5
id = str(id)
return id
运行结果:

(2)path类型
指定path类型,可以获取当前路径,值得注意的是获取的不是完整路径,只是此处传入的路径参数,如下获取的路径是 testpath/test。
@house_blueprint.route('/<path:url_path>/') #蓝图
def h(url_path):
return 'path:%s' % url_path

@app.route('/usepath/<path:name>/', methods=['GET', 'POST'])
def use_path(name):
return str(name)
userpath后面的路径随便写,如
http://192.168.100.95:8080/usepath/dfdsf/dsfsdf/fdsfds/
http://192.168.100.95:8080/usepath/dfdsf/
(3)uuid类型
@house_blueprint.route('/<uuid:uu>')
def h(uu):
return 'uu:s' % uu
(4) any:可以指定多种路径,这个通过一个例子来进行说明:
@app.route('/index/<any(article,blog):url_path>/')
def item(url_path):
return url_path
以上例子中,item
这个函数可以接受两个URL
,一个是http://127.0.0.1:5000/index/article/,另一个是http://127.0.0.1:5000/index//blog/
。并且,一定要传url_path
参数,当然这个url_path
的名称可以随便。
请求方法
常用的有5中,请求方式默认是GET,可以在路由中设置,如下
methods=['GET', 'POST','DELETE'.'PUT','HEAD']
二、请求方式设置
flask中请求默认是get请求,若想要指定其他请求方式,用参数methods指定。如用户注册时,需要把用户填写的数据存入数据库,生成一条新用户的记录,此处就需要用到post请求。
@house_blueprint.route('/register/', methods=['POST'])
def register():
register_dict = request.form
username = register_dict['usrename']
password = register_dict.get('password')
user = User()
user.username = username
user.password = password
db.session.add(user)
db.session.commit()
return '创建用户成功'
https://www.jianshu.com/p/e1b7d85efccb
Flask中路由参数的更多相关文章
- 第七篇 Flask 中路由系统以及参数
Flask中的路由系统其实我们并不陌生了,从一开始到现在都一直在应用 @app.route("/",methods=["GET","POST" ...
- Flask中路由系统、Flask的参数及app的配置
@app.route('/', methods=['GET', 'POST']) 1. @app.route()装饰器中的参数 methods:当前URL地址,允许访问的请求方式 @app.route ...
- Flask最强攻略 - 跟DragonFire学Flask - 第七篇 Flask 中路由系统
Flask中的路由系统其实我们并不陌生了,从一开始到现在都一直在应用 @app.route("/",methods=["GET","POST" ...
- Flask 中路由系统
1. @app.route() 装饰器中的参数 methods : 当前 url 地址,允许访问的请求方式 @app.route("/info", methods=["G ...
- Flask中路由系统以及蓝图的使用
一.Flask的路由系统 1.@app.route()装饰器中的参数 methods:当前URL地址,允许访问的请求方式 @app.route("/info", methods=[ ...
- 第七篇 Flask 中路由系统
1. @app.route() 装饰器中的参数 如果不明白装饰器 点击这里 methods : 当前 url 地址,允许访问的请求方式 @app.route("/info", me ...
- 7,Flask 中路由系统
Flask中的路由系统 @app.route("/",methods=["GET","POST"]) 为什么要这么用?其中的工作原理我们知道 ...
- flask中路由系统
flask中的路由我们并不陌生,从一开始到现在都一直在应用 @app.route("/",methods=["GET","POST"]) 1 ...
- Flask中获取参数(路径,查询,请求体,请求头)
上一篇中已经讲述了:HTTP协议向服务器传参有几种途径{ 链接 } 在Flask中同样通过这4中传参途径进行归纳: 1. URL中路径参数的获取: 拓展: # 路由参数/路径参数:http://127 ...
随机推荐
- 学习CSRF漏洞并挖掘CSRF漏洞
什么是跨站请求伪造? 跨站请求伪造(英语:Cross-siterequest forgery),也被称为one-clickattack或者session riding,通常缩写为CSRF或者XSRF, ...
- 【Day5】2.反爬策略之代理IP
import urllib.request as ur proxy_address = ur.urlopen('http://api.ip.data5u.com/dynamic/get.html?or ...
- 捷克200套UR51出货新版本FTP问题(FTP主动模式无法正常传输数据问题)
FTP alg功能 普通NAT实现了对UDP或TCP报文头中的的IP地址及端口转换功能,但对应用层数据载荷中的字段无能为力,在许多应用层协议中,比如多媒体协议(H.323.SIP等).FTP.SQLN ...
- c++对象模型和RTTI(runtime type information)
在前面已经探讨过了虚继承对类的大小的影响,这次来加上虚函数和虚继承对类的大小的影响. 先来回顾一下之前例子的代码: #include <iostream> using namespace ...
- Python基础之异常
一.摘要 Python使用被称为异常 的特殊对象来管理程序执行期间发生的错误.每当发生让Python不知所措的错误时,它都会创建一个异常对象.如果你编写了处理该异常的代码,程序将继续运行:如果你未对异 ...
- temp数据预处理--以24h为周期的序列
1.按照周期来截取数据 从数据库加载下来的是以5min取一次mean()的列,因此24h应取了24*60/5=288次数据 首先把这8352个数据(最后一个以倒数第二个填充)改成288*30的形式 t ...
- [原创]VSCode debug jest的配置
重拾JS的路从修改JS源码开始,修改JS源码从源码自带的test code开始.源码的test code使用了jtest框架,从test code刚好可以看到要修改部分的 多种传值方式,以及函数输出结 ...
- Mybatis各种查询
实体Emp private int empno; private String ename; private String job; private Integer mgr; private Date ...
- BZOJ 3901 棋盘游戏 (找结论+枚举+贪心)
题面 略 BZOJ 传送门 分析 具体分析见 dalao博客 妙就妙在当i<x,j<xi<x,j<xi<x,j<x时,(i,j)(i,j)(i,j) ^ (i,x) ...
- jQuery.merge(first,second)
jQuery.merge(first,second) 概述 合并两个数组 返回的结果会修改第一个数组的内容——第一个数组的元素后面跟着第二个数组的元素.要去除重复项,请使用$.unique() 参数 ...