zoukankan      html  css  js  c++  java
  • Flask--路由系统

    路由系统

    • flask的路由有两种写法:

    第一种:装饰器形式(推荐)

    @app.route("/index")
    def index():
        return "ok"
    

    第二种:

    def index():
        return "ok"
    app.add_url_rule('/index','index',index)
    
    • 路由加载流程
    1.执行装饰器的route方法,返回decorator方法
    2.把视图函数当做参数传进decorator方法并执行
    3.执行add_url_rule方法
    4.将rule对象添加到map中
    5.app.url_map是map对象
    
    • 动态路由
    from flask import Flask, session
    
    app = Flask(__name__)
    
    
    @app.route("/index/<int:num>")	# 获取参数
    def index(num):		# 接收参数
        return "ok"
    
    if __name__ == '__main__':
        app.run()
    

    支持正则表达式的路由(扩展)

    from flask import Flask,render_template
    
    app = Flask(__name__)
    
    
    from werkzeug.routing import BaseConverter
    class RegConverter(BaseConverter):
        def __init__(self, map, regex):
            super().__init__(map)
            self.regex = regex
    app.url_map.converters['regex'] = RegConverter
    
    @app.route('/index/<regex("d+"):x1>')
    def index(x1):
        return render_template('index.html')
    
    if __name__ == '__main__':
        app.run()
    
  • 相关阅读:
    设计模式-适配器模式
    设计模式-模板方法模式
    设计模式-策略模式
    spring-消息
    spring-集成redis
    spring-mvc高级技术
    spring-AOP
    restful规范
    十一,装饰器详解
    十,函数对象,嵌套,名称空间与作用域,闭包函数
  • 原文地址:https://www.cnblogs.com/os-linux/p/11907813.html
Copyright © 2011-2022 走看看