私信  •  关注

Benyamin Jafari

Benyamin Jafari 最近回复了
2 年前
回复了 Benyamin Jafari 创建的主题 » 如何在PyCharm中按顺序运行代码?

这是一个例子 subprocess 图书馆:

import subprocess

python_version = '3'
path_to_run = './'
py_name = '__main__.py'

# args = [f"python{python_version}", f"{path_to_run}{py_name}"]  # works in python3
args = ["python{}".format(python_version), "{}{}".format(path_to_run, py_name)]

res = subprocess.Popen(args, stdout=subprocess.PIPE)
output, error_ = res.communicate()

if not error_:
    print(output)
else:
    print(error_)
2 年前
回复了 Benyamin Jafari 创建的主题 » 是否可以将登录尝试的所有输入存储在django文件中?

这里有一个与Django用户集成的新答案( AbstractUser )详情如下:

模型py (创建从Django用户继承的模型):

from django.contrib.auth.models import AbstractUser
from django.db import models

class UserModel(AbstractUser):  # Inherit from django user
    last_logout = models.DateTimeField(null=True, blank=True)
    status = models.CharField(max_length=64)
    ip = models.GenericIPAddressField(null=True)

    def __str__(self):
        return '{} - {}'.format(self.username, self.ip)

信号py (记录到Django模型和日志):

from django.contrib.auth.signals import user_logged_out
from django.dispatch import receiver
from django.utils import timezone
from <model> import UserModel  # above model
from logging import getLogger

logger = getLogger(__name__)
  
def get_client_ip(request):
    x_forwarded_for = request.META.get('HTTP_X_FORWARDED_FOR')
    if x_forwarded_for:
        ip = x_forwarded_for.split(',')[0]
    else:
        ip = request.META.get('REMOTE_ADDR')
    return ip


@receiver(user_logged_out)
def user_logged_out_callback(sender, request, user, **kwargs):
    ip = get_client_ip(request)
    username = request.user.username  # get the username.
    now = timezone.now()
    logger.warn('{} logged out with {} IP'.format(user, ip))  # recording to log
    UserModel.objects.filter(username=username).update(last_logout=now,
                                                   status='user_logged_out',
                                                   ip=ip
                                                   )  # recording to the model
        

[ 笔记 ]:

  • username 位于 AbstarctUser 领域。

  • 使用者 登录时间 是内置的Django 抽象用户 我不需要 (待实施)

  • 此外,您还可以实现 登录失败 以类似的方式。


5 年前
回复了 Benyamin Jafari 创建的主题 » 如何在docker compose中定义一个名为in的环境值?

使用如下行而不是 ABC:DEF: ${ABC:DEF} :

environment:
  POSTGRES_PASSWORD: any-password 

[ 更新 ]

如果 : 不能在系统中的环境变量中使用,请将:替换为 __ (双下划线)。

Configuration_in _ASP.NET _Core_Reference

所以我想应该是这样的:

ABC__DEF: <asp-environment>    
5 年前
回复了 Benyamin Jafari 创建的主题 » 如何在grafana docker容器中拥有根权限?

我找到了解决方案:

$ docker exec -it -u 0 grafana_service bash
# chmod 777 /var/lib/grafana/grafana.db

(感谢 @c4f4t0r )