gpt4 book ai didi

Django:使用 urlresolver 设置 cookie 路径

转载 作者:行者123 更新时间:2023-12-04 05:45:21 25 4
gpt4 key购买 nike

我在 django 上写了一个 webservices 应用程序。此应用程序可以在我们的服务器上作为多个实例找到。

例如:

http://server1/testapp/
http://server2/sandboxapp/
http://server2/productionapp/

应用程序实例通过 mod_wsgi 托管在 apache2 上。

我对所有这些实例使用 cookie 身份验证,并希望每个 cookie 不与其他人重叠。我需要设置 SESSION_COOKIE_PATH 值。

碰巧我事先不知道部署应用程序的 URL。所以我想使用反向 url 来猜测该值。

我的主 urls.py看起来像这样:
urlpatterns = patterns('',
(r'admin/', include(admin.site.urls)),
url(r'^$', view_server_root, {}, name='server_root'),
),
# here I also includes urls from the various sub-apps
for app in apps:
urlpatterns.append(url(urlprefix, include(app.urls))

我在加载所有 url 后添加了这一点:
from django.core import urlresolvers
from django.conf import settings
settings.SESSION_COOKIE_PATH = urlresolvers.reverse('server_root')

不幸的是 urlresolvers.reverse('server_root')返回 /而不是预期的,例如 /testapp/ .如果我登录到每个实例,我的 cookie 会重叠。

虽然,稍后在应用程序使用中,我使用 django.db.models.permalink对于某些 View ,它会返回一个正确的前缀 URL(例如 /testapp/page/465)。

执行 urls.py 时可能缺少上下文的某些内容.

有什么想法吗?

谢谢阅读。

最佳答案

shouldn't change Django settings at runtime .如果您使用的是 Django 1.4 或更高版本,您或许可以使用 reverse_lazy 并设置 SESSION_COOKIE_PATH在您的 settings.py 中。

SESSION_COOKIE_PATH = reverse_lazy('server_root')

关于Django:使用 urlresolver 设置 cookie 路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10754387/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com