小编Seb*_*aye的帖子

Django记录user_login_failed信号的用户IP

我想在我的Django应用程序中记录用户IP地址,特别是登录,注销和失败的登录事件.我正在使用Django内置函数,如下所示:

from django.contrib.auth.signals import user_logged_in, user_logged_out, user_login_failed
from ipware.ip import get_ip
import logging

logger = logging.getLogger(__name__)

def log_logged_in(sender, user, request, **kwargs):
    logger.info("%s User %s successfully logged in" % (get_ip(request), user))

def log_logged_out(sender, user, request, **kwargs):
    logger.info("%s User %s successfully logged out" % (get_ip(request), user))

def log_login_failed(sender, credentials, **kwargs):
    logger.warning("%s Authentication failure for user %s" % ("...IP...", credentials['username']))

user_logged_in.connect(log_logged_in)
user_logged_out.connect(log_logged_out)
user_login_failed.connect(log_login_failed)
Run Code Online (Sandbox Code Playgroud)

问题是我没有找到获取user_login_failed信号IP的方法,因为这个函数没有request参数(https://docs.djangoproject.com/en/1.7/ref/contrib/auth/# module-django.contrib.auth.signals).该credentials参数是仅包含usernamepassword字段的字典.

我怎么能得到这个信号的IP地址?

非常感谢您的帮助.

python django ip signals

6
推荐指数
1
解决办法
2486
查看次数

将 unicode 字符编码为 un​​icode 转义序列

我有一个包含站点和地址的 CSV 文件。我需要处理这个文件以生成一个 json 文件,我将在 Django 中使用该文件将初始数据加载到我的数据库中。为此,我需要将 CSV 文件中的所有特殊字符转换为 unicode 转义字符。

下面是一个例子:

Örnsköldsvik;SE;Ornskoldsvik;Ångermanlandsgatan 28 A
Run Code Online (Sandbox Code Playgroud)

它应该转换为:

\u00D6rnsk\u00F6ldsvik;SE;Ornskoldsvik;\u00C5ngermanlandsgatan 28 A
Run Code Online (Sandbox Code Playgroud)

以下站点正在执行我期望的转换:http : //itpro.cz/juniconv/ 但我想找到一种从命令行 (bash) 或在 python 中执行此操作的方法。我已经尝试使用iconv,uconv以及一些没有真正成功的 python 脚本。

juniconv网站背后运行着什么样的脚本?

非常感谢您的任何建议。

python django unicode json iconv

6
推荐指数
1
解决办法
1185
查看次数

标签 统计

django ×2

python ×2

iconv ×1

ip ×1

json ×1

signals ×1

unicode ×1