Flask知识总结

1.-----------------路由设置的2种方式-----------------

    查看源码,route方法里,本质是执行app.add_url_rule()

    因此可以这么写(主流方式):

            @app.route("/xxx")

            def index():

                return "index!"

    还可以这么写:

            def index():

                return "index!"

            app.add_url_rule("/xxx", None, index)

    flask源码定义:

def add_url_rule(self, rule, endpoint=None, view_func=None, **options):
if endpoint:
assert "." not in endpoint, "Blueprint endpoints should not contain dots"
if view_func and hasattr(view_func, "__name__"):
assert (
"." not in view_func.__name__
), "Blueprint view function name should not contain dots"
self.record(lambda s: s.add_url_rule(rule, endpoint, view_func, **options))

 

2.-----------------route有很多的参数!-----------------

   1)重定向 redrict_to

   @app.route("/index", redrict_to="/new")

   def index():

       pass 

   @app.route("/new", redrict_to="/new")

   def new():

       pass

 

3.-----------------路由系统 (本质是把url和func搞一个对应关系)-----------------

@app.route("/index", methods=["GET", "POST"], endpoint="n1")

endpoint 相当于反向生成,不写就默认是函数名

 

翻页传参

@app.route("/index/<int:id>", methods=["GET", "POST"])

def index(id):

    pass

 

4.-----------------上下文管理-----------------

三个对象

localProxy类,作用:代理,取值。

request = localProxy("request")

print(request.method)

session = localProxy("session")

 

  请求流程:

    阶段一.请求到来:将request和session相关数据封装到ctx对象中,再通过localStack将ctx添加的Local中。

    阶段二.视图函数中获取request或者session:

             方式1  直接从localStack中获取

             方式2  通过localProxy获取, request是一个localProxy对象!

 

-------- g 和 session ---------

g的生命周期  每个http请求创建一个g,请求走了就销毁了。 同一个请求中可以在各个阶段中使用g!

g用来做点啥?可以权限系统!

 

app有啥用?

读配置文件 app.config

 

上一篇:org.springframework.boot.actuate.endpoint.EndpointId cannot be cast to java.lang.String 异常处理


下一篇:【Flask】CBV模式