Flask Web項目中的動態連結現實方法與靜態文件

Flask Web項目中的動態鏈接現實方法與靜態文件

Flask Web項目中的動態鏈接現實方法與靜態文件

關於鏈接

我們常用的超鏈接,能夠幫我們跳到指定的位置,同樣,對於一個多路由的web項目,是需要跳轉到不同的頁面的,例如,從登陸頁跳到主業,這些跳轉也是根據URL來定位的。

所謂URL,可以簡單理解為類似現實中的唯一的地理位置地址,通過該地址,能找到指定的位置(不存在的話會返回404頁面)。準確來說,URL是uniform resource locator,統一資源定位器,它是一種具體的URI,即URL可以用來標識一個資源,而且還指明瞭如何locate這個資源。順便提一下比較類似的概念:URI,是uniform resource identifier,統一資源標識符,用來唯一的標識一個資源;URN,uniform resource name,統一資源命名,是通過名字來標識資源,比如mailto:[email protected]。也就是說,URI是以一種抽象的,高層次概念定義統一資源標識,而URL和URN則是具體的資源標識的方式。URL和URN都是一種URI。

回到Flask Web 程序,在模板中直接寫固定的簡單路由沒有問題,但是路由包含可變的部分時(動態路由),在模板中就不好構建正確的URL了。不建議直接編寫URL會對代碼中定義的路由產生不必要的依賴關係。當要重新定義路由時,模板中的鏈接可能會失效的。基於以上的原因,Flask提供了url_for()這個輔助函數,可以使用程序URL映射中保存的信息生成URL。簡單例子,url_for('user',name='Mike',_external=True),返回的URL結果是http://localhost:5000/user/Mike。注,5000是Flask的默認端口

Flask Web項目中的動態鏈接現實方法與靜態文件

關於靜態文件

在一個正式程序中,除了python代碼和模板外,通常是少不了靜態文件的。什麼是靜態文件呢,我理解為通常是不會經常變化/動態變化的,而且被固定引用的文件,如HTML代碼中引用的圖片,js代碼和css代碼。這個特別提及是因為在Flask項目中,默認設置的情況下,程序根目錄中名為

static的子目錄是放置靜態文件的,就是說,程序會默認在這個目錄下找靜態文件的,它被當作一個特殊的路由。本人剛開始學的時候,就忽略了這個點,導致程序報錯,一直說找不到靜態文件,是一個新手坑


分享到:


相關文章: