flaskで個人ブログを開発する(3)--flaskでのリクエストとビュー関数マッピング


flaskでは、現在のパスをマッピングするときに次の文を通過するように、モディファイヤによってパスとビュー関数をマッピングします.
@route('/'):
    def index():
        ...
        return ...

上はpythonの修飾器の構文です.修飾器は関数をカプセル化し、関数を呼び出すときにしなければならない操作を修飾器で行うことができます.関数を修飾器で修飾した後、その関数を再び呼び出すと、単純に以前の関数の元のコードを呼び出すのではなく、修飾器の内容が加算されます.
#!/usr/bin/env python
from time import ctime,sleep

def settime(func):
    def tempfun():
        print '[%s] %s called'%(ctime(),func.__name__)
        return func
    return tempfun

@settime
def myfunc():
    pass

myfunc()
sleep(4)

for i in range(2):
    myfunc()
    sleep(1)

上のコードの中でsettimeはmyfuncの1つの修飾器で、修飾器は帯惨と無参の2種類に分けられて、ここのパラメータは被修飾関数以外のパラメータを指して、上述の修飾器は無参修飾器に属して、修飾器の中で自分で1つの余分な関数を定義する必要があって、この関数は被修飾関数を戻り値として、修飾子は、関数を戻り値として使用します.関数が修飾器によって修飾されると、後で呼び出されると、単純に呼び出されるのではなく、myfuncが呼び出されるたびに現在の時間を印刷出力するコードが実現される.
結果は次のとおりです.
hyman@hyman-laptop:~/work/test$ ./decrator.py 
[Thu Sep 15 22:20:50 2016] myfunc called
[Thu Sep 15 22:20:54 2016] myfunc called
[Thu Sep 15 22:20:55 2016] myfunc called

flaskでは、各ビュー関数を修飾器で修飾し、グローバルマッピングに保存し、IEクライアントが必要なURLを入力すると、そのマッピングから対応するビュー関数が検索され、呼び出されます.
グローバルなappを通過することができる.url_map変数これらのマッピング関係を表示
>>> from test import app
>>> app.url_map
Map([ index>,
 ' (HEAD, OPTIONS, GET) -> static>])

Github位置:https://github.com/HymanLiuTS/flaskTs
本プロジェクトのクローン作成:
git clone [email protected]:HymanLiuTS/flaskTs.git
この文書のソースコードを取得するには、次の手順に従います.
git checkout FL03