好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > 使用Django和Flask獲取訪問來源referrer

使用Django和Flask獲取訪問來源referrer

熱門標簽:地圖標注微信發送位置不顯示 蓋州市地圖標注 浙江電銷卡外呼系統好用嗎 上海機器人外呼系統哪家好 315電話機器人廣告 地圖制圖標注位置改變是移位嗎 地圖標注的意義點 房產電銷外呼系統 南京銷售外呼系統軟件

Flask

request.referrer  # 來路
request.headers.get('User-Agent')  # 請求頭

Django

request.META['HTTP_REFERER']  # 來路
request.META.get("HTTP_USER_AGENT")  # 請求頭

補充:flask 重定向到上一個頁面,referrer、next參數 --

>重定向會上一個頁面

在某些場景下,我們需要在用戶訪問某個url后重定向會上一個頁面,比如用戶點擊某個需要登錄才能訪問的連接,這時程序會重定向到登錄頁面,當用戶登錄后比較合理的行為是重定向到用戶登錄前瀏覽的頁面。

下面的例中,在foo和bar視圖中生成連接,鏈接過去后,沒有重定向會上一個頁面

@app.route('/foo')
def foo():
return 'h1>Foo page /h1>a href="%s" rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow" >Do something/a>' %url_for('do_something')
@app.route('/bar')
def bar():
return 'h1>Bar page/h1>a href="%s" rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow" >Do something /a>' % url_for('do_something')
@app.route('/do_something')
def do_something():
return redirect(url_for('hello'))
@app.route('/hello')
def hello():
name = request.args.get('name')
if name is None:
name = request.cookies.get('name','xiaxiaoxu')#從cookie中獲取name值
response = 'h1>Hello, %s/h1>' % name
return response
if __name__ == '__main__':
app.run(debug = True)

結果:

訪問127.0.0.1:5000/foo或者127.0.0.1:5000/bar后,頁面出現連接,點擊鏈接后,進入hello頁面,之后停留在了hello頁面

點擊鏈接后重定向到了hello頁面

我們的目的是在鏈接后,返回原來的頁面

重定向會上一個頁面,關鍵是獲取上一個頁面的URL。

獲取上一個頁面的URL有兩種方法:

HTTP referrer

HTTP referrer是一個用來記錄請求發源地址的HTTP首部字段(HTTP_REFERER),即訪問來源。當用戶在某個站點點擊鏈接,瀏覽器想新鏈接所在的服務器發起請求,請求的數據中包含的HTTP_REFERER字段記錄了用戶所在的原站點URL。

在flask中,referer的值可以通過請求對象的referrer屬性獲取,即request.referrer

修改do_something視圖函數:

@app.route('/do_something')
def do_something():
return redirect(request.referrer)

在bar頁面上再次點擊鏈接

有的時候,referrer字段可能是空值,比如用戶直接在瀏覽器地址欄輸入URL或者因為防火墻或者瀏覽器設置自動清除或修改referer字段,我們需要添加一個備選項:

return redirect(request.referrer or url_for('hello'))

查詢參數next

除了自動從referrer獲取,另一種更常見的方式是在URL中手動加入包含當前頁面URL的查詢參數,這個查詢參數一般命名為next

在bar視圖中的鏈接do_something對應的視圖添加next參數(在/do_someghing后加參數)

def bar():
#print dir(request)
print "request.full_path:",request.full_path
#print "request.url:",request.url
return 'h1>Bar page/h1>a href="%s" rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow" >Do something and redirect /a>' % url_for('do_something', next = request.full_path)
@app.route('/do_something')
def do_something():
return redirect(request.args.get('next'))

為了避免next參數為空的情況,也可以加備選項,如果為空就重定向到hello視圖

return redirect(request.args.get('next', url_for('hello')))

為了覆蓋更全面,可以將查詢參數next和referrer兩種方式結合起來使用:

先獲取next參數,如果為空就嘗試獲取referer,如果仍然為空,就重定向到默認的hello視圖

因為在不同視圖執行這部分操作的代碼相同,我們可以創建一個通用的函數redirect_back()函數

在do_something視圖中調用這個函數

@app.route('/bar')
def bar():
print "request.full_path:",request.full_path
return 'h1>Bar page/h1>a href="%s" rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow" >Do something and redirect /a>' % url_for('do_something', next = request.full_path)
def redirect_back(default = 'hello',**kwargs):
for target in request.args.get('next'),request.referrer:
if target:
return redirect(target)
return redirect(url_for(default,**kwargs))
@app.route('/do_something_and_redirect')
def do_something():
return redirect_back()
if __name__ == '__main__':
app.run(debug = True)

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。

您可能感興趣的文章:
  • Flask搭建一個API服務器的步驟
  • flask框架實現修改密碼和免密登錄功能
  • 如何使用flask將模型部署為服務
  • 使用Flask和Django中解決跨域請求問題
  • Python Flask請求擴展與中間件相關知識總結

標簽:赤峰 日照 雙鴨山 克拉瑪依 貴州 臨汾 金華 陽泉

巨人網絡通訊聲明:本文標題《使用Django和Flask獲取訪問來源referrer》,本文關鍵詞  使用,Django,和,Flask,獲取,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《使用Django和Flask獲取訪問來源referrer》相關的同類信息!
  • 本頁收集關于使用Django和Flask獲取訪問來源referrer的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 老师腿开大点我添添公视频| 青青电影院| 高清性色生活片免费观看| 七零年代肉多荤文高H| 全免费A级毛片免费看黄瓜视频| 特级毛片aaaa免费观看| 91TV看成免人成电影| 日久成瘾by是寒酥酥小说| 在线亚洲AV无码秘?蜜桃医院| 美女毛片大全| 抱着娇嫩小屁股上下耸动| 爽死你个放荡小婬妇打屁股视频| 亚洲精品无码一区二区三区四虎 | 色戒2小时38分完整版在线观看| 女人高潮抽搐潮喷A片| 17岁中国高清免费观看完整版动漫| 嫩草影院A片久久精品91| 精品无码久久久久| 国产涩| gogo西西人体大尺度大胆喷水| 欧美一级特黄AAAAAAA色戒| 范冰冰被狂c躁到高潮视频AV| 美女**毛片| 久久毛片视频| ass亚洲熟妇毛茸茸pics| 日本暧暧| 最新亚洲一区二区三区四区| 人与善交一级毛片A片视频下载| 戒尺打屁股红肿求饶哭小说啪| hd女人奶水授乳milk| 婷婷国产成人精品视频小说| 啊~嗯短裙直接进去habo| 国产精品女同一区二区久久| 娇妻浪欲13部| 我和老丈同性性经历小说| 电车痴汉乳揉みま痴汉电车视频| 大学生宿舍飞机free| 一男一女曰批动态图片| 国产91色欲麻豆精品一区二区| 18亚洲男同志videos网站| 美女啪啪XXOO动态图gif|