1.學習一個新的東西笙各,首先需要先去學會怎么導入他
from flask import Flask
2.hello world
永遠永遠 要記得hello world
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return "hello world!"
if __name__ ==' __main__':
app.run()
1需要注意的是畜眨,你所保存的python文件的名字斯议,不能為flask。血淚教訓杜窄,不然他就會在你的py文件之下尋找Flask衙吩,結(jié)果當然是沒有。
2 另外還有一個經(jīng)常用到的東西 if name ==' main':
簡單來說囱持,上面那個語句的功能就是來判斷是否是在直接運行該.py文件
如果要是直接運行當前python文件,那么它下面的方法就會被調(diào)用焕济。而如果要是從別的文件調(diào)用這個文件纷妆,那么它下面的方法就不會觸發(fā)。
好了晴弃,既然注意事項講完了掩幢,那么,就正式的來了解上面的那個小程序吧
首先第一句自然不用說是導入肝匆。
接下來第二行創(chuàng)建了一個實例粒蜈。注意其中的參數(shù)是必須的,它代表應用模塊或者包的名稱旗国。而本例中只有一個文件枯怖,自然就是_ name _。
接下來第三行能曾,第四行度硝,第五行合起來看,稍微了解python的應該知道寿冕,第三行調(diào)用的是flask自己的一個裝飾器蕊程,他的作用是告訴我們的app什么樣的url才能觸發(fā)下面的函數(shù)。而下面的函數(shù)自然不用我說驼唱,返回了熟悉的hello world藻茂。
下面的run函數(shù)則是讓我們寫的小程序運行在我們的服務器上,欲關(guān)閉服務器玫恳,按 Ctrl+C辨赐。
麻雀雖小 五臟俱全 幾行代碼便已經(jīng)初具一個網(wǎng)頁的雛形。
3.路由
接下來就稍微對路由系統(tǒng)進行一個簡單的入門京办,并不要想著一開始就完全的掌握這個框架掀序,是不現(xiàn)實的。
路由系統(tǒng)惭婿,就像你家的路由器不恭,對你想訪問那個網(wǎng)頁進行分類和導向。而flask里面的路由系統(tǒng)就是對你訪問的url進行分類的一個系統(tǒng)财饥。
flask上面的路由系統(tǒng)主要靠route裝飾器來將對應的函數(shù)綁定到對應的url上面换吧,
而上面的hello world 已經(jīng)簡單的將route裝飾器的用法簡單的講了一下。比如你要專門做一個index的url可以這么寫
@app.route('/index')
def index():
return "index page"
然而钥星,僅僅有這些是不夠的沾瓦,程序員永遠是不知滿足的,靜態(tài)的url并不能滿足我們的要求,我們可以構(gòu)造一種動態(tài)篩選url的方法暴拄。
通過把 URL 的一部分標記為 <variable_name> 就可以在 URL 中添加變量漓滔。標記的 部分會作為關(guān)鍵字參數(shù)傳遞給函數(shù)。通過使用 <converter:variable_name> 乖篷,可以 選擇性的加上一個轉(zhuǎn)換器响驴,為變量指定規(guī)則。請看下面的例子:
@app.route('/user/<username>')
def show_user_profile(username):
# show the user profile for that user
return 'User %s' % username
此時有一個小問題撕蔼,我們在用路由定位url的時候豁鲤,url的尾部都沒有添加斜杠,不添加斜杠鲸沮,flask在訪問這個url的時候琳骡,尾部會加上一個斜杠。而如果訪問這個url的時候加上了一個斜杠讼溺,就會出現(xiàn)404錯誤楣号,保證了url的唯一(雖然我也不太懂這塊)。
url的構(gòu)建
在flask中有一個url_for()函數(shù)怒坯,它用于構(gòu)建指定函數(shù)的url炫狱。它將函數(shù)名稱作為第一個參數(shù)√拊常可以接收任意個關(guān)鍵字參數(shù)视译。每一個關(guān)鍵字參數(shù)對應url中的變量,未知變量將添加到url中作為查詢參數(shù)
此時問題就出現(xiàn)了归敬,為什么要使用url_for()函數(shù)酷含,將url寫死不是更穩(wěn)定嗎
1.反轉(zhuǎn)通常比硬編碼 URL 的描述性更好。
2.你可以只在一個地方改變 URL 汪茧,而不用到處亂找椅亚。
3.URL 創(chuàng)建會為你處理特殊字符的轉(zhuǎn)義和 Unicode 數(shù)據(jù),比較直觀陆爽。
4.生產(chǎn)的路徑總是絕對路徑什往,可以避免相對路徑產(chǎn)生副作用扳缕。
5.如果你的應用是放在 URL 根路徑之外的地方(如在 /myapplication 中慌闭,不在 / 中), url_for() 會為你妥善處理躯舔。