flask框架——接口路由
安装
from flask import Flask
接口路由
1) 根路由
1 from flask import Flask 2 3 # 创建flask应用实例 4 app = Flask(__name__) 5 6 @app.route("/") 7 def index_page(): 8 return "index page" 9 10 if __name__ == "__main__": 11 app.run()
2) 定义接口路由传参类型
- 定义了一个路由"/index/<int:id>",捕获URL中
/
index/
后面的int类型,并将其作为一个变量 (id) 传递给视图函数,最后在页面上显示出来。
1 from flask import Flask 2 3 app = Flask(__name__) 4 5 @app.route("/index/<int:id>") 6 def find_id(id): 7 return f'id是:{id}' 8 9 if __name__ == "__main__": 10 app.run()
- 定义了一个路由"/path/<path:subpath>",捕获URL中
/path
/
后面的任意子路径,并将其作为一个变量 (subpath
) 传递给视图函数,最后在页面上显示出来; path:
是一种转换器类型, 它可以匹配包含斜杠 (/
) 的任意字符串;escape()
函数:用于对HTML进行转义,subpath
是来自用户输入的URL。如果用户输入的是恶意脚本,被浏览器执行,会造成跨站脚本(XSS)攻击;
from flask import Flask app = Flask(__name__) @app.route('/path/<path:subpath>') def show_subpath(subpath): # show the subpath after /path/ return f'Subpath {escape(subpath)}' if __name__ == "__main__": app.run()
3)接口路由重定向
from flask import Flask app = Flask(__name__) # /about/:有尾部斜杠,Flask 会重定向不带斜杠的请求 @app.route('/about/') def about_page(): return "<p>About</p>" # /about:没有尾部斜杠,Flask 会拒绝带斜杠的请求 @app.route('/about') def page(): return "<p>About</p>" if __name__ == "__main__": app.run()
4)传入请求方法
from flask import Flask app = Flask(__name__) @app.route("/hello",methods=["GET"]) def hello_world(): return "<p>Hello, World!</p>" @app.route("/index/<username>",methods=["POST"]) def input_username(username): return f'username是:{escape(username)}' @app.route("/put",methods=["PUT"]) def put(): return 'this is put methods' @app.route("/delete",methods=["DELETE"]) def delete(): return 'this is delete methods' @app.route("/able",methods=["GET","POST"]) def able(): if request.method == "GET": return "<p>GET</p>" else: return "<p>POST</p>" if __name__ == "__main__": app.run()