オールドボーイズのビデオ--flask要求コンテキスト

requsetの続編

コール():Pythonの、限り__call __()メソッドの定義は、タイプ、呼び出すことができるタイプを作成するときのように。呼び出される関数はオブジェクトでこのメソッドを呼び出したときのように。
__call__方法、wsgi_appの機能を入力します。

環境のrequest_contextカプセル化されたオブジェクトで得られた要求に関連するデータ。要求データに関連付けられている環境
CTX = self.request_context(環境)
リクエストオブジェクトrequest_contextに関連付けられたデータ・オブジェクトをカプセル化をするために添加
_request_ctx_stack.push(自己)

フラスココンテキスト

  1. 各スレッドが独自に行うためのスレッドを特定の原則によってであるためthreading.localはスペースを開くことができます。各スレッドは、データを保持しています。

これは3つのクラスに関連する
要求コンテキストの流れ:

    def wsgi_app(self, environ, start_response):
        ① ctx = self.request_context(environ)
        error = None
        try:
            try:
                ctx.push()
                response = self.full_dispatch_request()
            except Exception as e:
                error = e
                response = self.handle_exception(e)
            except:
                error = sys.exc_info()[1]
                raise
            return response(environ, start_response)
        finally:
            if self.should_ignore_error(error):
                error = None
            ctx.auto_pop(error)

(1)利用者のリクエストが来た、コールDEFの呼び出し()メソッドは、wsgi_app内の関数を実行するためのすべての要求をwsgi_app機能を進めます。
(2)request_contextでインスタンス化オブジェクト、実行__init__を、環境内の戻り値は、要求に関連するすべてのデータを含む
要求、実行__init__のインスタンスに(3)。
(4)次いでrequest_contextオブジェクトプッシュ()、プッシュ()関数は、自己の_request_ctx_stack.push(自己)を有して行われるrequest_contextオブジェクト要求は、関連するすべての利用可能なデータを含んでいる
実行開始する前に、(5)request_ctx_stackを= LocalStack()__initをインスタンス化するLocalStack _、オブジェクトのローカルインスタンスを、__init__を行います、ここに画像を挿入説明

部分的な機能

import functools

def func(a1,a2,a3):
    print(a1,a2,a3)

new_func = functools.partial(func,5,10)
new_func(77)

オブジェクト指向

オブジェクト指向のバーは全ての機能__ __達成さを有する場合、オブジェクトは、前記対応する方法の任意の操作を実行します。


class Foo(object):
    def __init__(self,num):
        self.num = num

    def __add__(self, other):
        data = self.num + other.num
        return Foo(data)

obj1 = Foo(11)
obj2 = Foo(22)

v = obj1 + obj2

おすすめ

転載: blog.csdn.net/xili2532/article/details/91564824
おすすめ