Skip to content

一、定义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}"

注意:

  1. URL本质上是一个字符串,如果没有指定参数类型,那么参数传进视图函数时默认也是字符串类型
  2. 如果指定了参数类型,那么子啊传给视图函数之前,会将参数转换为指定类型
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,但是中间可以添加/
uuidUUID类型,由一组32位的十六进制数所构成
anyany类型,指备选值中的任何一个

注意:

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}"