網(wǎng)站搜索怎么做常見的網(wǎng)絡(luò)營(yíng)銷推廣方式有哪些
1. 前言
在上一節(jié)中,我們使用到了靜態(tài)路由,即一個(gè)路由規(guī)則對(duì)應(yīng)一個(gè) URL。而在實(shí)際應(yīng)用中,更多使用的則是動(dòng)態(tài)路由,它的 URL是可變的。
2. 定義一個(gè)很常見的路由地址
@app.route('/user/<username>')
def user(username):return 'User %s' % username
username 作為參數(shù),傳入 user() 函數(shù)當(dāng)中。
需要記住的是,在定義路由的參數(shù)名時(shí)一定要與定義函數(shù)的變量名一致,否則就會(huì)引發(fā)異常。
3. Flask 提供了三種轉(zhuǎn)換器
- int:整型;
- float:浮點(diǎn)數(shù);
- path:路徑。
雖不包含正則表達(dá)式,但是可以手動(dòng)添加。
from werkzeug.routing import BaseConverterclass RegexConverter(BaseConverter):def __init__(self, url_map, *items):super(RegexConverter, self).__init__(url_map)self.regex = items[0]app.url_map.converters['regex'] = RegexConverter@app.route('/user/<regex("[a-z]{3}"):user_id>')
def user(user_id):return 'User %s' % user_id
這里代碼塊就添加了一個(gè)正則表達(dá)式,要求三個(gè)字符。
4. 比較友好的路由定義方式
@app.route('/projects/')
def projects():return 'The project page'
路徑后面加一個(gè)斜杠。
5. 也可以多個(gè)定義,同時(shí)指向同一個(gè)頁面
@app.route('/works/')
@app.route('/projects/')
def projects():return 'The project page'
6. http方法
在路由定義里面也同樣包括 http 的方法,即 GET、POST 等。
@app.route('/login', methods=['GET', 'POST'])
常見的 http 方法:
GET:瀏覽器告知服務(wù)器,只獲取頁面上的信息并發(fā)送給我。這是最常用的方法。POST:瀏覽器告訴服務(wù)器,想在 URL 上發(fā)布新消息。并且服務(wù)器必須確保數(shù)據(jù)已存儲(chǔ)且僅存儲(chǔ)一次。這是 HTML 表單通常發(fā)送數(shù)據(jù)到服務(wù)器的方法。
PUT:類似 POST,但服務(wù)器可能多次觸發(fā)了存儲(chǔ)過程,并且多次覆蓋掉舊值。你可能會(huì)問這有什么用,當(dāng)然這是有原因的??紤]到傳輸中連接可能會(huì)丟失,在這種情況下瀏覽器和服務(wù)器之間的系統(tǒng)可能安全地第二次接收請(qǐng)求,而不破壞其他東西。因?yàn)?POST 它只觸發(fā)一次,所以用 POST 是不可能的。
DELETE:刪除給定位置的信息。
HEAD:瀏覽器告訴服務(wù)器,欲獲取數(shù)據(jù),但是只關(guān)心消息頭。應(yīng)像 GET 請(qǐng)求一樣來處理它,但是不分發(fā)實(shí)際內(nèi)容。在 Flask 中你完全無需人工干預(yù),底層的
Werkzeug
庫已經(jīng)幫你打點(diǎn)好了。OPTIONS:給客戶端提供一個(gè)敏捷的途徑來弄清這個(gè) URL 支持哪些 http 方法。從 Flask 0.6 開始,實(shí)現(xiàn)了自動(dòng)處理。