路由中的变量规则
路由中的变量规则
在路由中设置不同的数据 显示不同的内容
在路由中添加变量
/路由名/<变量名> --- 要把变量的值传入视图函数中 所以需要在视图函数中也要声明一个对应的形参
变量默认类型 --- 字符串类型
标记变量的类型
整型 int:变量名
浮点型 float:变量名
path类型 类似于字符串类型 区别 path类型可以接受内容中的/但是普通的字符串是不可以的
uuid类型 识别uuid类型的字符串
以仿新闻页面为例
整型 int:变量名
新闻页面 — 会有很多条新闻
limit 起始位置, 条数
0 limit 0 20
1 limit 1*条数 20
2 limit 2*条数 20
@app.route("/page/<int:num>")
def get_news(num):
#数据源 1000条数
arr = [str(i) for i in range(1000)]
#每次获取的数据的个数
count = 20
#每一次取值的起始位置
start_index = num*count
#结束位置
end_index = start_index + count
return "-".join(arr[start_index:end_index])
path类型 类似于字符串类型 区别 path类型可以接受内容中的/但是普通的字符串是不可以的
@fls.route("/page/<path:name>")
def show_value1(name):
return "path:" + name
#eg:/page/lele/19
#path:lele/19
uuid类型 识别uuid类型的字符串
@fls.route("/uuid/")
def show_value2():
return f"{uuid.uuid4()}"
#f格式化字符串,python3.6以上支持
或者
@fls.route("/page/<uuid:name>")
def show_value3(name):
return "uuid:"
反向解析路由
url_for(函数名)可以解析到该函数路径
redirect 重定向
request请求
print(request)
print("获取请求的地址:", request.url)
print("请求方式:", request.method)
print("获取基础网址:", request.base_url)
print("获取网址路由:", request.path)
print("获取网址路由后所有的内容:", request.full_path)
print("获取客户端传递的数据:", request.values)
print("获取GET请求传递的数据:", request.args)
print("获取POST请求传递的数据:", request.form)
#可以获取远程的连接的IP地址 --- 可以制作黑名单
print("获取远程的连接的IP地址:", request.remote_addr)
#获取问号后面的数据
print("获取问号后面的数据:", request.query_string) #字节类型的