网站后端_Python+Flask.0007.FLASK构造跳转之301跳转与302重定向?
構(gòu)造地址:
說(shuō)明: FLASK支持通過(guò)視圖函數(shù)及傳參來(lái)構(gòu)造URL,而且未來(lái)修改URL可一次性修改,且默認(rèn)構(gòu)建會(huì)轉(zhuǎn)義特殊字符和Unicode數(shù)據(jù),這些工作不需要我們自己處理,且不僅支持在上下文中構(gòu)造而且還支持在模版文件中構(gòu)造
#!/usr/bin/env?python #?-*-?coding:?utf-8?-*- """ # #?Authors:?limanman #?51CTOBG:?http://xmdevops.blog.51cto.com/ #?Purpose: # """ #?說(shuō)明:?導(dǎo)入公共模塊 import?uuid from?flask?import?Flask,?url_for #?說(shuō)明:?導(dǎo)入其它模塊 app?=?Flask(__name__) @app.route('/instance/') def?index():return?url_for('index',?uuid=uuid.uuid4()) if?__name__?==?'__main__':app.run(host='0.0.0.0',?port=9000,?debug=True)
說(shuō)明: flask.url_for接收函數(shù)名作為第一個(gè)參數(shù),也接收URL規(guī)則的變量部分,未知的變量會(huì)會(huì)添加到URL末尾作為查詢參數(shù),需要注意的是構(gòu)造URL時(shí)必須在請(qǐng)求上下文或在程序上下文中,如上是在請(qǐng)求上下文中構(gòu)造的,如果要在程序上下文中可以在with app.test_request_context():代碼塊中測(cè)試
跳轉(zhuǎn)定向:
說(shuō)明: flask.url_for負(fù)責(zé)構(gòu)造URL,而flask.redirect負(fù)責(zé)重新定向,接收2個(gè)參數(shù),第一個(gè)是URL地址,第二個(gè)參數(shù)為code狀態(tài)碼,跳轉(zhuǎn)(301)多用于舊網(wǎng)址在廢棄前轉(zhuǎn)向新網(wǎng)址以保證用戶的訪問(wèn),表示永久重定向,而重定向(302)表示頁(yè)面暫時(shí)性的轉(zhuǎn)移,flask.redirect默認(rèn)就是302零時(shí)重定向
#!/usr/bin/env?python #?-*-?coding:?utf-8?-*- """ # #?Authors:?limanman #?51CTOBG:?http://xmdevops.blog.51cto.com/ #?Purpose: # """ #?說(shuō)明:?導(dǎo)入公共模塊 from?flask?import?Flask,?redirect,?request #?說(shuō)明:?導(dǎo)入其它模塊 app?=?Flask(__name__) @app.route('/<path:page_name>/') @app.route('/') def?index(page_name=''):print?'''UserAgent:?{}Method???:?{}GetArgs??:?{}PostArgs?:?{}'''.format(request.headers.get('User-Agent'),request.method,request.args,request.form,)return?redirect('http://{0}/{1}'.format('www.newweb.net',?page_name),?code=301) if?__name__?==?'__main__':app.run(host='0.0.0.0',?port=9000,?debug=app.debug)
注意: 如上給視圖函數(shù)index添加了裝飾器,表示兩個(gè)URL規(guī)則都應(yīng)用到此視圖函數(shù),由于所有請(qǐng)求數(shù)據(jù)運(yùn)行時(shí)都保存在request對(duì)象中,所以可以通過(guò)打印request對(duì)象的方法或?qū)傩詠?lái)獲取相關(guān)信息,然后301重定向到指定的網(wǎng)頁(yè),最后說(shuō)一點(diǎn)兒debug=app.debug這樣使用是因?yàn)閒lask.config.ConfigAttribute在app中做了配置的代理目前存在的默認(rèn)配置代理有app.debug/app.testing/app.secret_key/app.session_cookie_name/app.permanent_session_lifetime/app.use_x_sendfile/app.logger_name
轉(zhuǎn)載于:https://blog.51cto.com/xmdevops/1866215
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來(lái)咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的网站后端_Python+Flask.0007.FLASK构造跳转之301跳转与302重定向?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 在notepad++中运行python代
- 下一篇: python--批量下载豆瓣图片