轻量级django管理插件,查看谁已登录并处于活动状态。支持telize.com、geoip、用户代理和django ipware。

django-whoshere的Python项目详细描述


一个轻量级django管理插件,显示从何处登录的用户 使用缓存。支持Telizedjango-ipwareuser-agentsGeoIP

要求

可选

安装

  • 确保你有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)

可选

配置

不需要配置,但这些设置是为 方便性:

  • WHOSHERE_TIMEOUT = 300设置用户活动的超时时间。 默认为300秒。
  • WHOSHERE_LABEL = 'Active Users'覆盖管理链接标签。 默认为“活动用户”
  • WHOSHERE_PREFIX = 'whoshere'前缀用于缓存键。默认值 给“谁”。
  • WHOSHERE_TELIZE = True您可以将此设置为“false”以关闭 使用Telize查找地理位置。是 如果安装了geoip,则始终关闭。

模板标记

除了管理界面外,whosher的功能还包括 模板标记:

{%loadwhoshere%}

There are now {%active_user_count%} users logged in.

{%active_usersasusers%}<ul>{%foruserinusers%}<li>{{user.username}} ({{user.email}})</li>{%endfor%}</ul><p>Your IP address is {%your_ip%}</p><p>Your browser and platform is {%your_agent%}</p><p>You live in {%your_city%}, {%your_country%}</p>

地理位置

最初这个插件只支持geoip,但这意味着 您必须安装它附带的相当大的数据库。不是一个 如果你已经把它用于其他事情,但不是轻量级的 如果你只给谁用的话。作为一个替代者 通过https使用免费的Telizeapi 默认为查找已登录用户的位置。这是附带的 一些注意事项:

  • Telizeapi是 opensource,但你是 向第三方发送用户IP地址(尽管是匿名的)。
  • 作为一个免费的api,它有时可能不可用或速度慢
  • 您的服务器需要对远程位置进行https访问

您可以使用WHOSHERE_TELIZE =  Falsein关闭telize查找 或者通过安装和配置geoip。

注释

  • 中间件尽可能小,只增加IP和用户 当前登录用户的缓存代理。
  • 没有使用数据库表。相反,whosher使用的是 用户模型。
  • 代理模型将创建迁移,但不会影响数据库
  • 缓存telize查找以提高性能
  • 使用优秀的请求库获得更好的ssl支持

待办事项

  • 添加测试
  • 考虑其他要添加的内容

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
面向java语句的方法与面向表达式的方法   密码学如何在java中为json对象签名?   是否可以通过java程序知道给定卡夫卡消费群体的消费偏移量?   打印字符时出现java未知问号   java为JFrame设置背景色   在ubuntu中检查java版本时linux权限被拒绝   如何用java创建xml模式   java无法在远程服务器上运行Vaadin应用程序   java智能垃圾收集?   java如何在SpringMVC中设置缓存头?   在unix计算机上运行java应用程序a:>签名以输入内容   Java、Apache Commons配置XML属性   使用ArrayList调用Java未经检查的方法   在文本文件中查找并替换单词(Java GUI)   java Android Studio无法检测到JDK7或更新版本   java从socket的有效负载获取事件消息   安卓中java调用子类方法   java如何通过点击超链接来运行jar文件(Firefox)