zoukankan      html  css  js  c++  java
  • Flask路由

    @app.route()

    methods:当前url地址,允许访问的请求方式

    @app.route("/info", methods=["GET", "POST"])
    def student_info():
        stu_id = int(request.args.get("id"))
        return f"{stu_id}"  # Python3.6的新特性 f"{变量名}"

    endpoint:反向生成url地址,默认为视图函数名,导入url_for

    from flask import Flask, url_for
    
    app = Flask(__name__)
    
    
    @app.route("/index",methods=["POST","GET"],endpoint="index_s")
    def index():
        return url_for("index_s")  #index
    
    if __name__ == '__main__':
        app.run(debug=True)

    strict_slashes:url地址结尾符"/"的控制,默认为True:结尾不能的"/",False:无论结尾是否有"/"均可以访问

    from flask import Flask, url_for
    
    app = Flask(__name__)
    
    #访问地址 /index
    @app.route("/index",strict_slashes=True)
    def index():
        return url_for("index_s")
    
    #访问地址:/login 或 /login/
    @app.route("/login",strict_slashes=False)
    def login():
        return '欢迎'
    
    if __name__ == '__main__':
        app.run(debug=True)

    defaults : 视图函数的参数默认值{"nid":1}

    from flask import Flask, url_for
    
    app = Flask(__name__)
    
    
    @app.route("/index", defaults={"nid": 1})
    def index(nid):
        print(nid)
        return "哈喽"
    
    
    if __name__ == '__main__':
        app.run(debug=True)

    redirect_to:url地址重定向,301永久重定向,在进入视图函数之前跳转

    from flask import Flask, url_for
    
    app = Flask(__name__)
    
    
    @app.route("/index", redirect_to="/login")
    def index(id):
        print(id)
        return "光临"
    
    
    @app.route("/login")
    def login():
        return '欢迎'
    
    
    if __name__ == '__main__':
        app.run(debug=True)

    动态路由参数

    接受文件名,返回文件

    <int:id>:只能是数字

    from flask import Flask, url_for
    
    app = Flask(__name__)
    
    @app.route("/index/<int:a>",) #访问 http://127.0.0.1:5000/index/1
    def index(a):
        print(a)  # 1
        return "光临"
    
    if __name__ == '__main__':
        app.run(debug=True)

    <string:str>:可以是数字也可以是字符串

    from flask import Flask, url_for
    
    app = Flask(__name__)
    
    
    @app.route("/index/<string:str>",)
    def index(str):
        print(str)
        return "光临"
    
    if __name__ == '__main__':
        app.run(debug=True)

    也可以不用定义类型,默认接受字符串

    from flask import Flask, url_for
    
    app = Flask(__name__)
    
    
    @app.route("/index/<name>",)
    def index(name):
        print(name)
        return "光临"
    
    if __name__ == '__main__':
        app.run(debug=True)
  • 相关阅读:
    FastAdmin 开发时对数据库进行版本管理 (非 think-migration)
    使用 mysqldump 备份时的一些参数
    软件开源后可能遇到的问题
    基于 FastAdmin 开发后台流程 (持续更新)
    FastAdmin 怎么把模块设置默认的首页?
    FastAdmin 离线安装 ueditor 出现 rule 错误
    Windows nginx php cgi-fcgi 配置 xdebug
    FastAdmin 插件刷新缓存出现 200 红色提示框解决 always_populate_raw_post_data
    参与开源项目给我带来了什么?
    为什么要求将问题发到社区?
  • 原文地址:https://www.cnblogs.com/wanglan/p/10559314.html
Copyright © 2011-2022 走看看