我有一个使用 djangorest auth 的 djangorest 应用程序。我试图在每次用户使用信号登录时记录一些内容。
我在网上搜索了如何使用信号,但没有找到任何关于如何使其发挥作用的有趣材料。我认为问题可能出在 allauth 信号上。下面的配置有问题吗?
信号.py
import logging
from allauth.account.signals import user_logged_in
from django.dispatch import receiver
logger = logging.getLogger(__name__)
@receiver(user_logged_in)
def login_logger(request, user, **kwargs):
logger.info("{} logged in with {}".format(user.email, request))
Run Code Online (Sandbox Code Playgroud)
应用程序.py
from django.apps import AppConfig
class UsersConfig(AppConfig):
name = 'users'
def ready(self):
import users.signals
Run Code Online (Sandbox Code Playgroud)
__init__.py
default_app_config = 'users.apps.UsersConfig'
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用gstreamer从opencv流式传输一些图像,但管道出现了一些问题。我是gstreamer和opencv的新手。我在树莓派3上用gstreamer为python3编译了opencv 3.2。我有一个与raspivid一起使用的bash脚本。
raspivid -fps 25 -h 720 -w 1080 -vf -n -t 0 -b 2000000 -o - | gst-launch-1.0 -v fdsrc ! h264parse ! rtph264pay config-interval=1 pt=96 ! gdppay ! tcpserversink host=192.168.1.27 port=5000
Run Code Online (Sandbox Code Playgroud)
我想转换此管道,以便从opencv中使用它,并将其输入我的算法处理的图像。我做了一些研究,发现可以将videoWriter与appsrc一起使用,而不是fdsrc,但是出现以下错误
GStreamer Plugin: Embedded video playback halted; module appsrc0 reported: Internal data flow error.
Run Code Online (Sandbox Code Playgroud)
我想出的python脚本是以下方式导入cv2
cap = cv2.VideoCapture(0)
# Define the codec and create VideoWriter object
fourcc = cv2.VideoWriter_fourcc(*'MJPG')
out = cv2.VideoWriter('appsrc ! h264parse ! '
'rtph264pay config-interval=1 pt=96 ! '
'gdppay ! tcpserversink host=192.168.1.27 port=5000 ', …Run Code Online (Sandbox Code Playgroud) 我是 django 的新手,在从 AbstractBaseUser 模型创建用户时遇到了一些困难。现在我开始怀疑我的用户模型是否没有以正确的方式构建。这是我的用户模型
from django.db import models
from django.contrib.auth.models import AbstractBaseUser
class User(AbstractBaseUser):
'''
Custom user class.
'''
username = models.CharField('username', max_length=10, unique=True, db_index=True)
email = models.EmailField('email address', unique=True)
joined = models.DateTimeField(auto_now_add=True)
is_active = models.BooleanField(default=True)
is_admin = models.BooleanField(default=False)
Run Code Online (Sandbox Code Playgroud)
并且用户仅在此其他模型中被引用
from django.db import models
from user_profile import User
class Tweet(models.Model):
'''
Tweet model
'''
user = models.ForeignKey(User)
text = models.CharField(max_length=160)
created_date = models.DateTimeField(auto_now_add=True)
country = models.CharField(max_length=30)
is_active = models.BooleanField(default=True)
Run Code Online (Sandbox Code Playgroud)
然后当我尝试将我的新模型迁移到 db 时
Traceback (most recent call last):
File "manage.py", …Run Code Online (Sandbox Code Playgroud) 我试图将opencv图像放入python中的gstreamer rtsp服务器.我在mediafactory中写了一些问题,我是gst-rtsp-server ancd的新手,这里有很少的文档,所以我不确切知道我是否使用了正确的方法.我正在使用一个线程来启动MainLoop,我正在使用主线程创建一个缓冲区来推入mediafactory管道的appsrc元素.我使用正确的方法来获得我的目标吗?谁能帮我?我的代码如下:
from threading import Thread
from time import clock
import cv2
import gi
gi.require_version('Gst', '1.0')
gi.require_version('GstRtspServer', '1.0')
from gi.repository import Gst, GstRtspServer, GObject
class SensorFactory(GstRtspServer.RTSPMediaFactory):
def __init__(self, **properties):
super(SensorFactory, self).__init__(**properties)
self.launch_string = 'appsrc ! video/x-raw,width=320,height=240,framerate=30/1 ' \
'! videoconvert ! x264enc speed-preset=ultrafast tune=zerolatency ' \
'! rtph264pay config-interval=1 name=pay0 pt=96'
self.pipeline = Gst.parse_launch(self.launch_string)
self.appsrc = self.pipeline.get_child_by_index(4)
def do_create_element(self, url):
return self.pipeline
class GstServer(GstRtspServer.RTSPServer):
def __init__(self, **properties):
super(GstServer, self).__init__(**properties)
self.factory = SensorFactory()
self.factory.set_shared(True)
self.get_mount_points().add_factory("/test", self.factory)
self.attach(None)
GObject.threads_init()
Gst.init(None)
server …Run Code Online (Sandbox Code Playgroud) python ×4
django ×2
gstreamer ×2
opencv ×2
django-users ×1
model ×1
raspberry-pi ×1
rest ×1
rtsp ×1