Flask - 路由系统
2024-08-27 12:26:46
目录
- Flask - 路由系统
- @app.route()装饰器中的常用参数
- methods : 当前 url 地址,允许访问的请求方式
- endpoint:反向url地址,默认为视图函数名(url_for)
- defaults:视图函数的参数默认值{"nid":1}
- strict_slashes : url地址结尾符"/"的控制 False : 无论结尾 "/" 是否存在均可以访问 , True : 结尾必须不能是 "/"
- redirect_to : 301永久重定向 在进入视图函数之前进行跳转
- subdomain : 子域名前缀 subdomian="DragonFire" 这样写可以得到 DragonFire.oldboyedu.com 前提是app.config["SERVER_NAME"] = "oldboyedu.com"
- 动态参数路由
- @app.route()装饰器中的常用参数
Flask - 路由系统
最简单用法:
@app.route("/",methods=["GET","POST"])
下面介绍但是还有其他参数和用法
@app.route()装饰器中的常用参数
methods : 当前 url 地址,允许访问的请求方式
@app.route("/info", methods=["GET", "POST"])
def student_info():
stu_id = int(request.args["id"])
return f"Hello Old boy {stu_id}" # Python3.6的新特性 f"{变量名}"
endpoint:反向url地址,默认为视图函数名(url_for)
from flask import url_for
@app.route("/info", methods=["GET", "POST"], endpoint="r_info")
def student_info():
print(url_for("r_info")) # /info
stu_id = int(request.args["id"])
return f"Hello Old boy {stu_id}" # Python3.6的新特性 f"{变量名}"
defaults:视图函数的参数默认值{"nid":1}
from flask import url_for
@app.route("/info", methods=["GET", "POST"], endpoint="r_info", defaults={"nid": 100})
def student_info(nid):
print(url_for("r_info")) # /info
# stu_id = int(request.args["id"])
print(nid) # 100
return f"Hello Old boy {nid}" # Python3.6的新特性 f"{变量名}"
strict_slashes : url地址结尾符"/"的控制 False : 无论结尾 "/" 是否存在均可以访问 , True : 结尾必须不能是 "/"
# 访问地址 : /info
@app.route("/info", strict_slashes=True)
def student_info():
return "Hello Old boy info"
# 访问地址 : /infos or /infos/
@app.route("/infos", strict_slashes=False)
def student_infos():
return "Hello Old boy infos"
redirect_to : 301永久重定向 在进入视图函数之前进行跳转
# 访问地址 : /info 浏览器跳转至 /infos
@app.route("/info", strict_slashes=True, redirect_to="/infos")
def student_info():
return "Hello Old boy info"
@app.route("/infos", strict_slashes=False)
def student_infos():
return "Hello Old boy infos"
subdomain : 子域名前缀 subdomian="DragonFire" 这样写可以得到 DragonFire.oldboyedu.com 前提是app.config["SERVER_NAME"] = "oldboyedu.com"
app.config["SERVER_NAME"] = "oldboy.com"
@app.route("/info",subdomain="DragonFire")
def student_info():
return "Hello Old boy info"
# 访问地址为: DragonFire.oldboy.com/info
动态参数路由
@app.route("/info/<int:nid>", methods=["GET", "POST"], endpoint="r_info")
def student_info(nid):
print(url_for("r_info",nid=2)) # /info/2
return f"Hello Old boy {nid}" # Python3.6的新特性 f"{变量名}"
int:nid 就是在url后定义一个参数接收
但是这种动态参数路由,在url_for的时候,一定要将动态参数名+参数值添加进去,否则会抛出参数错误的异常
如果正则玩的好, 还可以用正则匹配
最新文章
- (七)C语言中的void 和void 指针类型
- python 接口开发(一)
- 慕课网-安卓工程师初养成-4-2 Java条件语句之 if...else
- BITED数学建模七日谈之七:临近比赛时的准备工作
- gulpfile的结构
- POP动画引擎中Layer与CALayer的一点区别
- PS 滤镜算法原理 ——马赛克
- 黑马程序员:Java基础总结----GUI图形化界面
- iOS回顾笔记( 01 )
- 大数据学习系列之九---- Hive整合Spark和HBase以及相关测试
- Maximum Subarray(最大子数组)
- golang中使用ETCD
- WPF程序 双击exe自动申请“以管理员方式运行”权限
- Python进阶量化交易场外篇5——标记A股市场涨跌周期
- java代码示例(4)
- Mysql 函数使用记录(一)——DATEDIFF、CONCAT
- spark dataframe操作集锦(提取前几行,合并,入库等)
- trunc()用法和add_months()
- mfc Radio Buttons
- 【Socket】linux下http服务器开发