切换主题
一、定义URL
一、定义无参数的URL
无参数URL是指在URL定义的过程中,不需要定义参数
python
@app.route("/profile")
def profile():
return "这是个人中心"
二、定义有参数的URL
在Flask中,如果URL中携带了参数,那么视图函数必须定义相应的形参来接受URL中的参数
python
@app.route("/blog/<blog id>")
def blog_detail(blog_id):
return f"您查找的博客id为:{blog_id}"
注意:
- URL本质上是一个字符串,如果没有指定参数类型,那么参数传进视图函数时默认也是
字符串类型
。 - 如果指定了参数类型,那么子啊传给视图函数之前,会将参数转换为
指定类型
python
@app.route("/blog/<int:blog id>")
def blog_detail(blog_id):
return f"您查找的博客id为:{blog_id}"
1、URL中的参数类型
参数类型 | 描述 |
---|---|
string | 字符串类型 ,可以接收除/ 以外的字符 |
int | 整型 ,可以接收能通过int() 方法转换的字符 |
float | 浮点类型 ,可以接收能通过float() 方法转换的字符 |
path | 路径 ,类似string,但是中间可以添加/ |
uuid | UUID类型 ,由一组32位的十六进制数所构成 |
any | any类型 ,指备选值中的任何一个 |
注意:
any
类型:指的是备选值,传过来的路径参数值必须是指定范围的值
python
@app.route("/blog/list/<any(python,flask,django):category>")
def blog_list_with_category(category):
return f"您获取的博客分类为:{category}"
2、传参的默认值
python
@app.route("/blog/list/<int:user_id>")
@app.route("/blog/list/<int:user_id>/<int:page>")
def blog_list(user_id,page=1): #默认值为1
return f"您查找的用户为{user},博客分页为:{page}"
3、URL多参数传递
例:/blog/list?user_id=10&page=8
使用request.args
对象获取
python
from flask import Flask,request
@app.route("/blog/list")
user_id=request.args.get("user_id")
page=request.args.get("page")
return f"查找的用户id为:{user_id},博客分页为:{page}"