成人视屏在线观看-国产99精品-国产精品1区2区-欧美一级在线观看-国产一区二区日韩-色九九九

您的位置:首頁技術(shù)文章
文章詳情頁

python框架flask入門之路由及簡單實現(xiàn)方法

瀏覽:104日期:2022-07-22 13:51:36

路由

簡單來說,路由就是一個url到函數(shù)的映射,通過路由規(guī)則,可以使得url被指定的函數(shù)進行處理解析。

我們都知道現(xiàn)在的web系統(tǒng)的URL都是可以自定義的,也就是我們可以指定url和具體的業(yè)務(wù)控制器相關(guān)聯(lián),而這些就是通過路由來實現(xiàn)的。

flask中集成了路由處理模塊,我們只需要簡單地使用route裝飾器就可以實現(xiàn)路由匹配。

@app.route(’/’)def index(): return ’Index Page’@app.route(’/hello’)def hello(): return ’Hello, World’

上面的例子中,我們訪問瀏覽器的時候,比如輸入http://127.0.0.1/ 就會返回’index page’,當輸入http://127.0.0.1/hello 就會返回‘Hello World’,這就是路由的基本使用。

@app.route(’/user/<username>’)def show_user(username): return username@app.route(’/post/<int:post_id>’)def show_post(post_id): return ’Post %d’ % post_id@app.route(’/path/<path:subpath>’)def show_subpath(subpath): # show the subpath after /path/ return ’Subpath %s’ % escape(subpath)

從上面的例子我們可以看出,flask的路由還可以進行參數(shù)匹配,比如我們可以通過<>來對參數(shù)進行獲取,可以獲取到文章的id,獲取到用戶名等參數(shù)信息,也就是說,我們可以通過路由匹配來對指定的url進行處理。

關(guān)于url中斜線(/)的處理當我們在路由中定義了斜線,那么當我們訪問沒有斜線的url的時候,它會自動添加斜線當我們在路由中沒有定義斜線的時候,那么我們訪問有斜線的時候,會提示404

@app.route(’/test/’)#當我們訪問http://127.0.0.1/test的時候,會重定向到http://127.0.0.1/test/def test(): return ’test’@app.route(’slashes’)#當我們訪問http://127.0.0.1/slashes/的時候,會提示404,無法匹配到路由def slashes(): return ’slashes’

下面看下Python Flask框架路由簡單實現(xiàn)

也許你聽說過Flask框架。也許你也使用過,也使用的非常好。但是當你在瀏覽器上輸入一串路由地址,跳轉(zhuǎn)至你所寫的頁面,在Flask中是怎樣實現(xiàn)的,你是否感到好奇? 如果你不清楚,那就往下看看吧 ~

Flask demo代碼

from flask import Flaskapp = Flask(__name__)@app.route(’/’)def hello_world(): return ’<a href='http://m.cgvv.com.cn/home'>Hello World!</a>’@app.route('/home')def home(): return '這個是主頁'@app.route('/login')def login(): return '這個是登錄'if __name__ == ’__main__’: app.run(debug=True)

當你在瀏覽器地址上輸入路徑,進入不同視圖函數(shù)。

1.輸入路徑為:'/'

python框架flask入門之路由及簡單實現(xiàn)方法

2.輸入路徑為:'/home'

python框架flask入門之路由及簡單實現(xiàn)方法

3.輸入路徑為:'/login'

python框架flask入門之路由及簡單實現(xiàn)方法

是不是很神奇~ 接下來讓我們看看他是如何實現(xiàn)的吧!

簡單實現(xiàn)(廢話不多說,直接上碼!)

''' Flask 路由簡單實現(xiàn) map: {'/home':'home', '/login':'login', ...}'''map = dict()def route(path): def decorator(f): print(path, f.__name__, '<-----------start---------->') map[path] = f.__name__ return f return decoratorclass TestFlaskRoute: def __init__(self, path): self.path = path def find_url(self): try: getattr(TestFlaskRoute, map.get(self.path)).__call__(self) except: print('033[031m 沒有這個路徑! 033[0m ') @route('/login') def login(self, *args, **kwargs): print('033[036m 這個是登錄! 033[0m') pass @route('/home') def home(self, *args, **kwargs): print('033[036m 這個是主頁! 033[0m') pass @route('/') def index(self, *args, **kwargs): print('033[036m Hello World! 033[0m') pass @route('/call') def phone(self, *args, **kwargs): print('033[036m 這個是', self.path, '! 033[0m') passif __name__ == ’__main__’: while True: url = input('請輸入URL路徑:') app = TestFlaskRoute(url) app.find_url()

在這里我們用模擬瀏覽器輸入方式來完成,當我們輸入'/',它會去找對應(yīng)路徑下index() 執(zhí)行 ; 輸入'/home',它會去找對應(yīng)路徑下home() 執(zhí)行;輸入'/login',它會去找對應(yīng)路徑下 login() 執(zhí)行,怎樣是不是很神奇,是不是很像Flask。其實Flask就是這樣的思路實現(xiàn)的。

效果:

python框架flask入門之路由及簡單實現(xiàn)方法

解析實現(xiàn)(3步)

a.當程序啟動時,先執(zhí)行了route()這個裝飾器,拿到了所有路徑、對應(yīng)函數(shù)并將它們存在map這個字典中,以路徑為key,對應(yīng)函數(shù)名為value。(注:在Flask是以Route類來存這些信息的哦,所以還是有些區(qū)別的~)

b.當你輸入路徑或者在瀏覽器上輸入路徑,會以key的形式到map字典中匹配,取出value(函數(shù)名)。

c.得到value通過getattr()得到函數(shù)地址,然后用內(nèi)置__call__()方法,執(zhí)行這個函數(shù)

總結(jié)

到此這篇關(guān)于python框架flask入門之路由及簡單實現(xiàn)方法的文章就介紹到這了,更多相關(guān)python框架flask 路由內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 日本xxxxx黄区免费看动漫 | 国产成人精品久久 | 最新中文字幕视频 | 精品视频99 | 黄a视频在线观看 | 黄色a∨ | 国产视频软件在线 | 美女视频很黄很a免费国产 美女视频黄.免费网址 | 一本色道久久综合狠狠躁 | a理论片 | 美女一级片 | 黄色美女免费看 | 亚洲三级成人 | 国产精品久久久久一区二区三区 | 奇米第四狠狠777高清秒播 | a级高清毛片 | 成人看片免费 | 无码精品一区二区三区免费视频 | 性感一级毛片 | 中文字幕精品在线观看 | 看性过程三级视频在线观看 | 欧美日韩免费做爰视频 | 亚洲午夜久久久久国产 | 国产精品国产精品国产三级普 | 久久精品国产一区二区三区 | 在线亚洲日产一区二区 | 日韩一区二区精品久久高清 | 久久成人精品 | 久草在线视频免费看 | 成人综合婷婷国产精品久久免费 | 久久久久久久久一级毛片 | 欧美日韩亚洲另类 | 国产成人18黄网站免费 | 亚洲欧美网址 | 成人午夜大片免费看爽爽爽 | 在线看片日韩 | 久久99亚洲精品久久久久网站 | 亚洲美女性生活视频 | 免费一级视频在线播放 | 亚洲在线观看 | 国产三级精品在线 |