cookie 有效域名如何设置??

cookie默认只能在主域名下使用,如果我们想要在子域名下使用cookie,该怎么办呢?下面汤锅就教大家如何在子域名下愉快的使用cookie。

首先新建一个cookie_demo文件,其代码如下:

rom flask import Flask,Response

app = Flask(__name__)

@app.route("/")
def index():
    respon = Response("设置cookie")
    # set_cookie:设置cookie ,第一个为key,第二个为value
    respon.set_cookie("name","tlj")
    return respon

if __name__ == "__main__":
    app.run(debug=True)

由于我们要在子域名下调用主域名的cookie,所以我们首先得创建一个子域名,如何创建子域名??相信看过汤锅前面关于蓝图文章的同学,一定知道如何创建子域名,实在不知道的同学,请访问《蓝图子域名如何实现》一文。

子域名可以通过蓝图方式来实现,我们创建一个blue_demo文件(用于写蓝图代码),其代码如下:

from flask import Blueprint,request

bp = Blueprint("cms_bp",__name__,subdomain="cms")

@bp.route("/")
def index():
    name = request.cookies.get("name")

    #如果有name这个key,则返回name对应的值,否则返回没有获取到name值
    return name or "没有获取到name值"

蓝图写好了,我们在主app文件将其导入进来。代码如下:

from bp_demo import bp

蓝图导入到主app文件后,我们是不是还得将蓝图注册到app中,是吧!!注册代码如下:

app.register_blueprint(bp)

OK,蓝图注册好了,我们还得对其进行配置。哼哼!!是配置,不是配偶啊!!!配置代码如下:

app.config["SERVER_NAME"] = "jd.com"

然后在host文件下,加入下方代码

127.0.0.1 cms.jd.com
127.0.0.1 jd.com

打开谷歌浏览器,输入jd.com:5000,点击浏览器icon小图标,就可以看到我们设置的cookie信息了,由于之前我们设置过,我们先把所有cookie信息删除。


删除完!我们再运行主app文件试试!在浏览器输入jd.com:5000,再点击小图标就能看到cookie已成功设置!

主域名已成功设置cookie,我们再看看子域名是否能够获取的到主域名cookie信息!在浏览器输入 cms.jd.com:5000试试

结果返回我们没有获取到name值,这是为什么呢??原因很简单,因为我们再设置cookie的时候,没有指定这个cookie的作用域(说白了,就是指定cookie是否能够在子域名下使用)。既然我们知道了原因,下面我们就设置下cookie的作用域。

set_cookie函数有个domain参数,这个domain参数有什么用呢?其作用就是用于解决cookie是否能够在子域名下使用。代码如下:

respon.set_cookie("name","tlj",domain=".jd.com")

注:设置好后,jd.com主域名下所有的子域名都能使用主域名cookie!

我们先运行jd.com:5000,然后再在浏览器输入cms.jd.com:5000试试,结果如下

OK,这样我们就获取到了主域名cookie信息了。

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值