1. 程式人生 > >第一個flask應用代碼詳解

第一個flask應用代碼詳解

python flask

上一篇我們創建了第一個簡單的flask應用程序,這一篇我們來看一下,這個最簡單的應用程序都做了哪些事

  1. 第一行代碼,導入了flask類

from flask import Flask

  1. 第二步創建了Flask類的實例

app = Flask(__name__)

這行代碼裏有一個參數name,這個參數用到告訴flask你的application的名字,官方有一句話:

If you are using a single module,name is always the correct value. If you however are using a package, it’s usually recommended to hardcode the name of your package there.

意思就是說,如果是單一的應用,用name就可以了,如果是一個應用程序包,就hardcode一個名字給這個參數。比如:
app = Flask(“myApp”)

由於目前我們的應用都相對簡單,所以統一使用name作為參數。

  1. 使用route()修飾器註明通過什麽樣的url可以訪問我們的函數,同時在函數中返回要顯示在瀏覽器中的信息
@app.route(‘/‘)
def hello_world():
    return ‘Hello World!‘

可以通過修改route()修飾器實現不同的url解析,比如,我們改成如下的樣子

@app.route(‘/index‘)
def hello_world():
    return ‘Hello World!‘

再次運行程序,訪問/index才能顯示出hello world, 如圖所示:

  1. 最後調用run()方法,運行flask web應用程序
if __name__ == ‘__main__‘:
    app.run()

其中if name==’main’的意思是,如果此文件是直接運行的才會執行app.run()這個方法,如果是通過import在其它py文件中調用的話是不會執行的
比如我們修改code.py中的hello_world方法,如下:

@app.route(‘/index‘)
def hello_world():
    if __name__==‘main‘:
        return ‘Hello World!‘
    else:
        return "hello my name is "+__name__

即當namemain時還是執行原來的邏輯,返回hello world,如果不是則輸出此時的名字。

然後我們新建一個sub.py文件然後導入code.py,並且執行hello_world方法

import Code

def CallCodeFun():
    result = Code.hello_world()
    print(result)

CallCodeFun()

執行sub.py後,輸入結果如下:
技術分享圖片
此時的name是Code而不是main
而此時,在sub.py中加一句print(name)可以發現sub.py中的name變成了main
技術分享圖片
由此我們可以得出 name 如果是 main 那麽代表他是一個入口文件,直接執行的

第一個flask應用代碼詳解