動態URL規則
URL規則可以添加變量部分,也就是件更符合同規則的URL抽象成一個URL模式。
@app.route('/item/<id>') def item(id): return 'Item: {}'.format(id)
尖括號中的內容是動態的,范式匹配了/item前綴的URL都會被映射到這個路由上,在內部把id作為參數獲得
使用特殊字段標記<variable_name>,默認類型是字符串,如果需要執行參數累心更需要標記成<converter:variable_name>這樣的格式,converter有下面幾種:
- string :接受任何沒有斜杠"/"的文本 默認
- int 接受整數
- float 接受浮點數
- path 和默認相似 但是也接受斜杠
- uuid 只接受uuid字符串
- any 可以指定多種路徑 但是需要傳入參數
@app.route('/<any(a,b):page_name>')
訪問/a/和/b/都符合這個規則,/a/對應的page_name就是a
如果我們不希望定制路徑,我們還是可以通過傳遞參數的方式 比如 /pople/?name=a./pople/?name=b 這樣我們就可以通過 name=request.args.get('name') 獲得傳入的name值
如果我們使用post方式請求,表單參數需要通過 request.form.get('name').
自定義URL轉換器