电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

python框架flask入門之路由及簡單實現方法

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

路由

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

我們都知道現在的web系統的URL都是可以自定義的,也就是我們可以指定url和具體的業務控制器相關聯,而這些就是通過路由來實現的。

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

@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的路由還可以進行參數匹配,比如我們可以通過<>來對參數進行獲取,可以獲取到文章的id,獲取到用戶名等參數信息,也就是說,我們可以通過路由匹配來對指定的url進行處理。

關于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框架路由簡單實現

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

Flask demo代碼

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

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

1.輸入路徑為:'/'

python框架flask入門之路由及簡單實現方法

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

python框架flask入門之路由及簡單實現方法

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

python框架flask入門之路由及簡單實現方法

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

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

''' Flask 路由簡單實現 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()

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

效果:

python框架flask入門之路由及簡單實現方法

解析實現(3步)

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

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

c.得到value通過getattr()得到函數地址,然后用內置__call__()方法,執行這個函數

總結

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

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 合肥网带炉_安徽箱式炉_钟罩炉-合肥品炙装备科技有限公司 | 全自动实验室洗瓶机,移液管|培养皿|进样瓶清洗机,清洗剂-广州摩特伟希尔机械设备有限责任公司 | 头条搜索极速版下载安装免费新版,头条搜索极速版邀请码怎么填写? - 欧远全 | 防水套管厂家_刚性防水套管_柔性防水套管_不锈钢防水套管-郑州中泰管道 | 冲锋衣滑雪服厂家-冲锋衣定制工厂-滑雪服加工厂-广东睿牛户外(S-GERT) | 探伤仪,漆膜厚度测试仪,轮胎花纹深度尺厂家-淄博创宇电子 | 拼装地板,悬浮地板厂家,悬浮式拼装运动地板-石家庄博超地板科技有限公司 | 洛阳网站建设_洛阳网站优化_网站建设平台_洛阳香河网络科技有限公司 | 纯水设备_苏州皙全超纯水设备水处理设备生产厂家 | 首页_欧瑞传动官方网站--主营变频器、伺服系统、新能源、软起动器、PLC、HMI | 郑州律师咨询-郑州律师事务所_河南锦盾律师事务所 | 德州网站制作 - 网站建设设计 - seo排名优化 -「两山建站」 | 济南货架定做_仓储货架生产厂_重型货架厂_仓库货架批发_济南启力仓储设备有限公司 | 撕碎机_轮胎破碎机_粉碎机_回收生产线厂家_东莞华达机械有限公司 | 衬氟止回阀_衬氟闸阀_衬氟三通球阀_衬四氟阀门_衬氟阀门厂-浙江利尔多阀门有限公司 | 上海小程序开发-上海小程序制作公司-上海网站建设-公众号开发运营-软件外包公司-咏熠科技 | 氨水-液氨-工业氨水-氨水生产厂家-辽宁顺程化工 | 啤酒设备-小型啤酒设备-啤酒厂设备-济南中酿机械设备有限公司 | 单螺旋速冻机-双螺旋-流态化-隧道式-食品速冻机厂家-广州冰泉制冷 | 华东师范大学在职研究生招生网_在职研究生招生联展网 | 喷播机厂家_二手喷播机租赁_水泥浆洒布机-河南青山绿水机电设备有限公司 | 浙江美尔凯特智能厨卫股份有限公司 | 动物麻醉机-数显脑立体定位仪-北京易则佳科技有限公司 | 防火卷帘门价格-聊城一维工贸特级防火卷帘门厂家▲ | 太原装修公司_山西整装家装设计_太原室内装潢软装_肖邦家居 | 智慧养老_居家养老_社区养老_杰佳通 | 上海心叶港澳台联考一对一培训_上海心叶港澳台联考,港澳台联考一对一升学指导 | 欧必特空气能-商用空气能热水工程,空气能热水器,超低温空气源热泵生产厂家-湖南欧必特空气能公司 | 英国雷迪地下管线探测仪-雷迪RD8100管线仪-多功能数字听漏仪-北京迪瑞进创科技有限公司 | 北京翻译公司_同传翻译_字幕翻译_合同翻译_英语陪同翻译_影视翻译_翻译盖章-译铭信息 | 刹车盘机床-刹车盘生产线-龙口亨嘉智能装备 | 汽车润滑油厂家-机油/润滑油代理-高性能机油-领驰慧润滑科技(河北)有限公司 | ASA膜,ASA共挤料,篷布色母料-青岛未来化学有限公司 | 游泳池设备安装工程_恒温泳池设备_儿童游泳池设备厂家_游泳池水处理设备-东莞市君达泳池设备有限公司 | 半自动预灌装机,卡式瓶灌装机,注射器灌装机,给药器灌装机,大输液灌装机,西林瓶灌装机-长沙一星制药机械有限公司 | 伸缩节_伸缩器_传力接头_伸缩接头_巩义市联通管道厂 | 冷热冲击试验箱_温度冲击试验箱价格_冷热冲击箱排名_林频厂家 | 青岛代理记账_青岛李沧代理记账公司_青岛崂山代理记账一个月多少钱_青岛德辉财税事务所官网 | 砂尘试验箱_淋雨试验房_冰水冲击试验箱_IPX9K淋雨试验箱_广州岳信试验设备有限公司 | 煤棒机_增碳剂颗粒机_活性炭颗粒机_木炭粉成型机-巩义市老城振华机械厂 | 全自动过滤器_反冲洗过滤器_自清洗过滤器_量子除垢环_量子环除垢_量子除垢 - 安士睿(北京)过滤设备有限公司 |