Flask框架第五篇.Flask 中的路由
1 endpoint
Flask路由 https://www.cnblogs.com/DragonFire/p/9260295.html
反向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"{变量名}"
2.flask中的路由
rule #"/login" 路由地址 methods #允许进入视图函数的请求方式 endpoint #路由地址和 endpoint之间的 -- 路由地址和视图函数Mapping endpoint在同一个app中不能出现重复,默认值是视图函数名 defaults #默认路由参数 strict_slashes=False #是否严格遵循路由匹配规则,默认是True redirect_to="/" #永久重定向 308 301 methods=["GET","POST","options"] #八种请求方式 #http八种请求方式 get:向服务器请求指定的资源 post:向服务器提交数据请求处理,数据被包含在请求中 put:向服务器上传指定的数据 delete:向服务器发送请求删除指定数据 options:返回服务器对指定资源数据支持的HTTP请求方法,一般用于测试服务器功能的可用性 head:返回服务器上对指定资源数据的HTTP请求头,在不需要返回全部数据的情况下测试指定功能大可用性 track:回显服务器收到的请求,只要进行功能测试诊断 connect:HTTP1.1协议中预留请求方式,可以将连接改为管道方式到的代理服务器
3. 动态生成路由
import os from flask import Flask, render_template, Markup, request, session, redirect, url_for, send_file app = Flask(__name__) # app.config["DEBUG"] = True app.debug = True app.secret_key = "!@#$%^(*&^%$#@#$%&*(^$WQ*(^EWET*^EWEU" @app.route("/get_music/<filename>") def get_music(filename): #可以分页,获取文件,解决分类,解决正则路由问题 filename = "1.mp3" filepath = os.path.join("music",filename) return send_file(filepath) @app.route("/get_img/<filename>") def get_img(filename): filepath = os.path.join("img", filename) return send_file(filepath) if __name__ == '__main__': app.run("0.0.0.0",9527)