国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

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

2020-02-23 00:53:28
字體:
來源:轉載
供稿:網友

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

@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的方式:

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,為什么呢.百思不得其解.但是我的一個處理文章點擊率的提醒了我,代碼如下:

@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了一下:

from bottle import responsehelp(response.set_cookie)

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

   

 :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我們的代碼須改成如下:

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']            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 庆安县| 闽侯县| 吉木萨尔县| 信宜市| 中西区| 克山县| 新安县| 游戏| 全州县| 平泉县| 大同县| 呼和浩特市| 正镶白旗| 大新县| 辉县市| 铜梁县| 岗巴县| 汶川县| 耒阳市| 乌兰浩特市| 贵州省| 江孜县| 康马县| 阳新县| 维西| 奉新县| 奉节县| 个旧市| 斗六市| 濮阳县| 台北市| 义乌市| 盱眙县| 女性| 嵊泗县| 建昌县| 莫力| 大连市| 乳山市| 隆尧县| 西安市|