Flask Web 開發 連結 url_for 函數__函數

來源:互聯網
上載者:User

下面講一個非常重要的功能

url_for函數

其實,在路由內部,url的連結並不是直接存取到響應的頁面的

如下圖,他是分為2個頁面來進行的

首先通過url連結到endpoint,再通過endpoint來連結試圖函數

而這個endpoint一般就是路由函數的名字

需要提一點的是,在建立應用執行個體的時候,他就會自動預設產生一個url靜態路由目錄,就是指向靜態檔案的檔案夾static。

| url rule | endpoint | view_function |<--------------對應關係-------------->| /static | static | Flask.send_static_file


當然,如果你的靜態檔案不是放在static中,你可以自訂路徑來訪問他

下面的樣本中,將應用下的assets檔案夾註冊為靜態目錄/assets:

app = Flask(name,static_folder='assets',static_url_path='/assets') 當應用運行後,通過URL/assets/main.css就可以訪問assets檔案夾下的 main.css檔案了。

這時候他們的url_map和view_function關係就變成了:

| url | endpoint | view_function |<-------------------對應關係------------------>| /assets | static | Flask.send_static_file |



url_for() 函數最簡單的用法是以視圖函數名(或者app.add_url_route() 定義路由時使用
的端點名)作為參數,返回對應的URL。例如,在目前的版本的hello.py 程式中調用url_
for('index') 得到的結果是/。調用url_for('index', _external=True) 返回的則是絕對地
址,在這個樣本中是http://localhost:5000/。


使用url_for() 產生動態地址時, 將動態部分作為關鍵字參數傳入。例如,url_for
('user', name='john', _external=True) 的返回結果是http://localhost:5000/user/john。
傳入url_for() 的關鍵字參數不僅限於動態路由中的參數。函數能將任何額外參數添加到
查詢字串中。例如,url_for('index', page=2) 的返回結果是/?page=2。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.