flask學習筆記——路由管理

一個網站是由多個頁面組成,而每個頁面的訪問地址都不一樣,這便需要對路由進行管理

普通路由

默認訪問位置,如果我們在路由中單獨寫個‘/’他訪問的就是默認頁面

例如:

from flask import Flask,render_template
app = Flask(__name__)
# 學了路由管理,可以有多個不同的界面

@app.route('/')
def hello_world():
    t=render_template('index.html')
    return '我是默認頁面'



if __name__ == '__main__':
    app.run()

注意:這個訪問路徑是:127.0.0:5000 這個就是默認訪問的

 

再看下面這個

from flask import Flask,render_template
app = Flask(__name__)
# 學了路由管理,可以有多個不同的界面


@app.route('/xm1')
def head1():

    return '我是頁面一'

@app.route('/xm2')
def head2():

    return '我是頁面二'

if __name__ == '__main__':
    app.run()

 

 

帶參數的路由

更多的時候,路由不是固定的,根據顯示的不同頁面,路由裏面某些字段會發生變化

路由裏面還可以帶參數

from flask import Flask,render_template
app = Flask(__name__)
# 學了路由管理,可以有多個不同的界面


@app.route('/xm1/<cs1>') # 參數傳遞
def head1(cs1):
# 函數裏面接收參數
    return '我是頁面一,接收的參數是%s'%cs1


if __name__ == '__main__':
    app.run()

 

當然也可以接收多個參數的,並且這裏的參數是必須的多個參數是下面這樣定義的,當然訪問的時候,也需要每個參數之間用‘/’隔開

from flask import Flask,render_template
app = Flask(__name__)
# 學了路由管理,可以有多個不同的界面


@app.route('/xm1/<cs1>/<cs2>') # 參數傳遞
def head1(cs1,cs2):
# 函數裏面接收參數
    return '我是頁面一,接收的參數一是%s 參數二是:%s'%(cs1,cs2)


if __name__ == '__main__':
    app.run()

URL參數類型過濾和轉換器

參數也是有數據類型的,默認是字符類型,主要有以下幾種數據類型

類型

作用

string

默認的字符轉換器,匹配不包含/的字符串

int

接受並轉換成整數

float

接受並轉換成浮點數

path

匹配包含/的字符串

uuid

接收uuid類型的字符串

 

from flask import Flask,render_template
app = Flask(__name__)
# 學了路由管理,可以有多個不同的界面


@app.route('/xm1/<cs1>/<float:cs2>/<int:cs3>') # 參數傳遞
def head1(cs1,cs2,cs3):
# 函數裏面接收參數
    return '我是頁面一,接收的參數一是%s 參數二是浮點型的:%f參數三是整形的他是:%d'%(cs1,cs2,cs3)


if __name__ == '__main__':
    app.run()

注意:“:”號前後不要有空格,否則會報錯。根據運行的截圖,我們也可以看出這個轉換器確實起到了過濾和轉換的作用。使用轉換器,可以讓我們的路由處理更加嚴謹,

 

正則路由示例

這裏需要學習正則和裝飾器方面的知識,我已經把前面忘了,,先暫留個坑

 

 

構建url地址

有的時候需要在一個頁面上跳轉到另一個頁面,那就需要獲取另一個頁面的url路由地址,我們可以把地址直接硬編碼在頁面上面,但是這樣並不靈活,尤其是另一個頁面的url路由也需要可變參數的時候,硬編碼就沒有辦法了。更好的辦法是在後臺生成另一個頁面的url地址,這個時候就要用到一個新的方法url_for()了。

方法如下:


@app.route('/h1')
def head1():
    css3=url_for('h2')
    return '主頁<a href=%s>轉到</a>'%css3


@app.route('/h2')
def h2():
    h1=url_for()
    return '<h2>這裏是h2</h2>,版本號是'

if __name__ == '__main__':
    app.run()

這個是簡單的,如果第二個頁面也需要參數,就麻煩一點了


@app.route('/h1')
def head1():
    css3=url_for('h2',t=100) #在這裏需要指定,傳參了
    return '主頁<a href=%s>轉到</a>'%css3

@app.route('/h2<t>')
def h2(t):
    # h1=url_for()

    return '<h2>這裏是h2</h2>,版本號是%s'%t

if __name__ == '__main__':
    app.run()

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章