轻量级django管理插件,查看谁已登录并处于活动状态。支持telize.com、geoip、用户代理和django ipware。
django-whoshere的Python项目详细描述
一个轻量级django管理插件,显示从何处登录的用户 使用缓存。支持Telize, django-ipware, user-agents和 GeoIP
安装
确保你有Django的 Cache 后端设置。
使用pip安装:pip install django-whoshere
将django_whoshere添加到设置中的INSTALLED_APPS。py:
INSTALLED_APPS=(# other apps'django_whoshere',)
将django_whoshere.middelware.TrackMiddleware添加到 MIDDLEWARE_CLASSES。确保它在您的身份验证之后 中间件。
MIDDLEWARE_CLASSES=(# other middleware'django.contrib.auth.middleware.AuthenticationMiddleware','django.contrib.auth.middleware.SessionAuthenticationMiddleware','django_whoshere.middleware.TrackMiddleware',# more middleware)
可选
- 安装 user-agents用于 更好的用户代理格式
- 安装django-ipware 以便更好地确定实际IP地址。
- 配置 GeoIP 或安装 django-geoip-utils 对于地理位置而不是Telize。
配置
不需要配置,但这些设置是为 方便性:
- WHOSHERE_TIMEOUT = 300设置用户活动的超时时间。 默认为300秒。
- WHOSHERE_LABEL = 'Active Users'覆盖管理链接标签。 默认为“活动用户”
- WHOSHERE_PREFIX = 'whoshere'前缀用于缓存键。默认值 给“谁”。
- WHOSHERE_TELIZE = True您可以将此设置为“false”以关闭 使用Telize查找地理位置。是 如果安装了geoip,则始终关闭。
地理位置
最初这个插件只支持geoip,但这意味着 您必须安装它附带的相当大的数据库。不是一个 如果你已经把它用于其他事情,但不是轻量级的 如果你只给谁用的话。作为一个替代者 通过https使用免费的Telizeapi 默认为查找已登录用户的位置。这是附带的 一些注意事项:
- Telizeapi是 opensource,但你是 向第三方发送用户IP地址(尽管是匿名的)。
- 作为一个免费的api,它有时可能不可用或速度慢
- 您的服务器需要对远程位置进行https访问
您可以使用WHOSHERE_TELIZE = Falsein关闭telize查找 或者通过安装和配置geoip。
注释
- 中间件尽可能小,只增加IP和用户 当前登录用户的缓存代理。
- 没有使用数据库表。相反,whosher使用的是 用户模型。
- 代理模型将创建迁移,但不会影响数据库
- 缓存telize查找以提高性能
- 使用优秀的请求库获得更好的ssl支持
待办事项
- 添加测试
- 考虑其他要添加的内容