小编kam*_*yrb的帖子

Selenium ChromeDriver 给出“InitializeSandbox() 在进程 GPU 进程中使用多个线程调用”错误

我正在尝试使用 selenium chromedriver 打开一个网站。我已经添加了一些我在其他类似问题中看到的论点,但它没有解决问题。我基本上有这个代码:

 String baseUrl = "https://somesite.com";
 System.setProperty("webdriver.chrome.driver", "/usr/bin/google-chrome");
 ChromeDriverService service = ChromeDriverService.createDefaultService();
 ChromeOptions options = new ChromeOptions();
 options.addArguments("--start-maximized");
 options.addArguments("--disable-infobars");
 options.addArguments("--disable-gpu");
 options.addArguments("--disable-software-rasterizer");
 options.addArguments("no-sandbox");
 options.addArguments("headless");
 options.addArguments("--enable-native-gpu-memory-buffers");

 driver = new ChromeDriver(service, options);
 driver.get(baseUrl);
Run Code Online (Sandbox Code Playgroud)

当我运行上面的代码时,chrome 打开但页面没有改变。它还给出了这个输出:

[61263:61263:0903/005049.885829:ERROR:sandbox_linux.cc(374)] InitializeSandbox() called with multiple threads in process gpu-process.
Run Code Online (Sandbox Code Playgroud)

为什么会发生这种情况?

注意:我的操作系统是ubuntu 20.04。

java ubuntu selenium selenium-chromedriver selenium-webdriver

15
推荐指数
1
解决办法
3万
查看次数

Python使用本地SMTP服务器在docker容器内发送邮件

我想smtp在python上用lib发送邮件。我知道它在端口号 25 上使用本地 smtp 服务。我有以下代码。这些代码在我的本地运行没有任何问题,邮件发送成功。但是当我将它们移动到 docker 容器时,邮件不会发送,也不会出现任何错误。

我的代码:

from_mail = 'noreply@testmail.com'
to_mail = 'to@testmail.com'

s = smtplib.SMTP('localhost')
subject = 'Test Subject'
content = 'content test'

message = f"""\
      Subject: {subject}
      To: {to_mail}
      From: {from_mail}
      {content}"""
result = s.sendmail(from_mail, to_mail, message)
s.quit()
Run Code Online (Sandbox Code Playgroud)

运行这些代码后,我得到空字典 ({}) 作为result值。在 sendmail 方法描述中有这样的:

... 消息被接受并发送到四个地址中的三个,一个被拒绝,错误代码为 550。如果所有地址都被接受,则该方法将返回一个空字典。

和网络配置有关吗?我应该配置任何网络设置吗?

email smtp sendmail python-3.x docker

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

Django 根据参数使用不同的序列化器

我有一个 APIView 提供我的模型实例。我想根据 url 参数使用不同的序列化器,因为我想根据参数提供不同的字段。我不想对所有情况都使用 if else 检查,因此我使用了一个函数,该函数根据类型键从序列化器对象 dict 提供序列化器。有好的解决办法吗?有人有更好的建议吗?另外,您在考虑使用不同的端点而不是这种方法。这是代码:

urls.py

from django.urls import path
from .views import MySerializerTestView

urlpatterns = [
    path('<slug:type>', MySerializerTestView.as_view()),
]
Run Code Online (Sandbox Code Playgroud)

模型.py

from django.db import models
class MyModel(models.Model):
    field_first = models.CharField(max_length=10)
    field_second = models.CharField(max_length=10)
    field_third = models.CharField(max_length=10)
Run Code Online (Sandbox Code Playgroud)

视图.py

from .models import MyModel
from rest_framework.response import Response
from rest_framework.views import APIView
from .serializers import MyFirstSerializer,MySecondSerializer,MyThirdSerializer

class MySerializerTestView(APIView):
    def get(self, request, **kwargs):
        my_data = MyModel.objects.all()
        serializer = self.get_serializer(self.kwargs['type'],my_data)
        return Response(serializer.data)


    def get_serializer(self,type,data):
        my_serializers = {
        'first':MyFirstSerializer(data,many=True),
        'second':MySecondSerializer(data,many=True),
        'third':MyThirdSerializer(data,many=True), …
Run Code Online (Sandbox Code Playgroud)

python django django-serializer django-rest-framework

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

如何在 django rest 框架中更新多个对象?

我正在尝试使用 ID 更新多个对象,我将这些 ID 传递给需要更新的每个对象,但找不到任何方法来成功执行此操作。这是我的代码

模型.py

class EventTicket(models.Model):
    id = models.UUIDField(primary_key=True, default=uuid_generate_v1mc, editable=False)
    name = models.CharField(max_length=250)
    description = models.TextField(max_length=1000)
Run Code Online (Sandbox Code Playgroud)

视图.py

  class EventTicketView(APIView, PaginationHandlerMixin):
        permission_classes = (AllowAny,)
        def get_object(self, ticket_id):
            try:
                return EventTicket.objects.get(id=ticket_id)
            except EventTicket.DoesNotExist():
                raise status.HTTP_400_BAD_REQUEST
        def patch(self, request, *args, **kwargs):
            for each_ticket in request.data:

                ticket_id = self.get_object(each_ticket['ticket_id'])

                serializer = EventTicketSerializer(instance=ticket_id,data=request.data,partial=True)
                if serializer.is_valid():
                    serializer.save()
                    result = {
                        'message': "updated sucessfully"
                    }
                    return Response(result, status=status.HTTP_201_CREATED)
                else:
                    return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
Run Code Online (Sandbox Code Playgroud)

序列化程序.py

class EventTicketSerializer(serializers.ModelSerializer):
    class Meta:
        model = EventTicket
        fields = ['name', 'description'] …
Run Code Online (Sandbox Code Playgroud)

django django-views django-serializer django-rest-framework

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