激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Python - Python的Bottle框架中獲取制定cookie的教程

Python的Bottle框架中獲取制定cookie的教程

2020-06-12 10:31C Wong Python

這篇文章主要介紹了Python的Bottle框架中獲取制定cookie的教程,主要是針對別的路徑而不是當前頁面的cookie,需要的朋友可以參考下

這兩天為用bottle+mongodb寫的一個項目加上登錄功能,無奈怎么都獲取不到保存的cookie,文檔給出讓我們這樣操作cookie的代碼片段:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
@route('/login')
def login ():
   username = request .forms .get('username ')
   password = request .forms .get('password ')
   if check_user_credentials(username, password):
      response .set_cookie("account", username, secret= 'some-secret-key')
      return "Welcome %s!You are now logged in." % username
   else :
      return "Login failed."
 
@route('/restricted')
def restricted_area ():
   username = request .get_cookie("account", secret= 'some-secret-key')
   if username:
      return "Hello %s.Welcome back." % username

雖然文檔上沒有但是還有一種操作cookie的方式:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
from bottle import request, response
 
@route('/login', method="POST")
def login():
  user = request.POST['user']
  passwd = request.POST['passwd']
 
  if check_user_right(user,passwd):
    response.COOKIES['account'] = user
  else:
    pass
 
@route('/admin')
def admin():
  user = request.COOKIES['user']
  if user:
    pass

但是無論我用哪種方式操作我都無法獲取cookie,為什么呢.百思不得其解.但是我的一個處理文章點擊率的提醒了我,代碼如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
@route('/archrives/:aid#\d+#')
def article_show(aid):
  db = dbconn.ConnDB()
  artid = int(aid)
  # 獲取客戶端ip
  remoteip = request.environ.get('REMOTE_ADDR')
 
  artcookie = remoteip+'ip'+aid
  print request.COOKIES.keys()
 
  # 判斷cookie是否存在
  if artcookie in request.COOKIES.keys():
    # 存在則更新有效時間
    response.COOKIES[artcookie] = True
    response.COOKIES[artcookie]['max-age'] = 500
  else:
    # 不存在則更新文章查看次數
    db.posts.update({"id":artid}, {"$inc":{"views":1}})
 
    # 并設置cookie
    response.COOKIES[artcookie] = True
    response.COOKIES[artcookie]['max-age'] = 500
 
  TEMPLATE['posts'] = getArtList({"id":artid})
  TEMPLATE.update(setTempVar())
 
  return template('article.html', TEMPLATE)

這里是可以正常獲取到cookie的,而且代碼沒有任何區別.唯一的區別就是用戶認證是跳轉了頁面.所以我help了一下:

?
1
2
from bottle import response
help(response.set_cookie)

help的結果其中有兩個參數一個是path,和domain:

   

?
1
2
3
:param domain: the domain that is allowed to read the cookie.
  (default: current domain)
 :param path: limits the cookie to a given path (default: current path)

明顯bottle的cookie默認只在當前路徑下能讀取的到,所以要別的頁面讀取到cookie我們的代碼須改成如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
from bottle import request, response
 
@route('/login', method="POST")
def login():
  user = request.POST['user']
  passwd = request.POST['passwd']
 
  if check_user_right(user,passwd):
    response.COOKIES['account'] = user
    response.COOKIES['account']['path'] = '/admin'
  else:
    pass
 
@route('/admin')
def admin():
  user = request.COOKIES['user']

這樣我們就能在別的路徑下訪問我們設定的cookie.

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 亚洲导航深夜福利涩涩屋 | 一级黄色免费观看 | 国产精品a一 | 欧美a在线看 | 亚洲无av| 精品爱爱 | 国产免费大片视频 | 国产91精品亚洲精品日韩已满 | 国产资源在线播放 | 国产一精品久久99无吗一高潮 | 日日爱影院 | 中文字幕h | 免费在线观看国产精品 | 久久久入口 | 色婷婷一区二区三区 | 亚洲成人久久精品 | 看个毛片 | 免费视频 久久久 | 精品国产一区二区三区在线 | 一级毛片在线视频 | 国产一区视频在线观看免费 | 欧美视频一区二区三区在线观看 | 欧美成人三级视频 | 日韩毛片毛片久久精品 | 色柚视频网站ww色 | 国产成人在线视频 | 久久99精品视频在线观看 | 国产美女做爰免费视 | 久久久一区二区三区视频 | 中文字幕一区2区 | 国产日韩在线观看视频 | 宅男噜噜噜66国产免费观看 | 中文在线免费观看 | 一级毛片在线免费观看 | 久久777国产线看观看精品 | 成人做爽爽爽爽免费国产软件 | 9797色| 久久免费观看一级毛片 | xnxx 美女19| 九九热精品免费 | 久久精国 |