小编sea*_*olf的帖子

Django REST Framework结合了来自不同应用程序的路由器

我有一个跨多个应用程序的项目:

./project/app1
./project/app2
./project/...
Run Code Online (Sandbox Code Playgroud)

每个应用程序都有一个Django REST Framework路由器,可以整合该应用程序提供的API部分:

from django.conf.urls import url, include
from rest_framework.routers import DefaultRouter
from .views import ThingViewSet

router = DefaultRouter()
router.register(r'things', ThingViewSet, base_name='thing')

urlpatterns = [
    url(r'^', include(router.urls)),
]
Run Code Online (Sandbox Code Playgroud)

由于应用是独立的,因此我的顶级网址file(./project/urls.py)包含来自不同应用的每个网址文件:

url(r'^api/app1/', include('app1.urls', namespace='a1')),
url(r'^api/app2/', include('app2.urls', namespace='a2')),
Run Code Online (Sandbox Code Playgroud)

这意味着Django REST Framework为每个应用程序显示一个单独的API根目录.但是,我想要的是一个统一的API结构,因此,如果我导航到http://example.com/api/我,我会看到该层次结构中所有可用URL的完整列表.

我认为有一种方法可以将urls.py每个应用程序的单个文件中定义的所有单独路由器包含在一个路由器中,但是我找不到有关如何执行此操作的文档.我错过了一些明显的东西吗

django django-rest-framework

51
推荐指数
5
解决办法
1万
查看次数

如何确定高延迟网络请求的最佳线程数?

我正在编写一个必须生成数千个网络请求的实用程序.每个请求只接收一个响应的小数据包(类似于ping),但可能需要几秒钟才能完成.处理每个响应在一个(简单)代码行中完成.

这样做的最终结果是计算机不受IO限制,受文件系统限制或受CPU限制,它仅受响应延迟的约束.

这类似于,但不一样有一种方法可以确定理想的线程数?和Java最好的方法来确定最佳线程数[重复] ...主要的区别是我只受延迟的约束.

我正在使用一个ExecutorService对象来运行线程和一个Queue<Future<Integer>>跟踪需要检索结果的线程:

ExecutorService executorService = Executors.newFixedThreadPool(threadPoolSize);
Queue<Future<Integer>> futures = new LinkedList<Future<Integer>>();

for (int quad3 = 0 ; quad3 < 256 ; ++quad3) {
    for (int quad4 = 0 ; quad4 < 256 ; ++quad4) {
        byte[] quads = { quad1, quad2, (byte)quad3, (byte)quad4 };
        futures.add(executorService.submit(new RetrieverCallable(quads)));
    }
}
Run Code Online (Sandbox Code Playgroud)

...然后我将队列中的所有元素出列,并将结果放入所需的数据结构中:

int[] result = int[65536]
while(!futures.isEmpty()) {
    try {
        results[i] = futures.remove().get();
    } catch (Exception e) {
        addresses[i] = -1; …
Run Code Online (Sandbox Code Playgroud)

java networking multithreading akka

10
推荐指数
2
解决办法
1万
查看次数

ffmpeg filter_complex concat 永远不会完成

我正在尝试将mp4文件连接成一个文件。concat由于与此问题无关的原因,我试图直接使用过滤器(因此-i list.txt不是有效的解决方案)。所有有问题的视频文件的长度都在 4 到 20 分钟之间。

我正在执行的操作:

% ffmpeg -i f01.mp4 -i f02.mp4 -filter_complex "[0:v][0:a][1:v][1:a]concat=n=2:v=1:a=1[v][a]" -map "[v]" -map "[a]" output.mp4
Run Code Online (Sandbox Code Playgroud)

这是我从FFmpeg Filters Documentation: concat and Concatenate Videos Together Using FFMPEG等参考资料中对这个命令形式的理解!.

发生什么了:

ffmpeg提供大量输出,因为它检查每个流的元数据,然后开始处理。在短暂的持续时间(几秒到一分钟左右,似乎与第一个视频的持续时间成正比)后,我开始看到这样的消息:

More than 1000 frames duplicated
More than 10000 frames duplicated     512kB time=00:00:00.12 bitrate=32771.0kbits/s dup=33365 drop=0 speed=0.00449x
More than 100000 frames duplicated   1280kB time=00:00:00.17 bitrate=61442.1kbits/s dup=66730 drop=0 speed=0.00272x
Run Code Online (Sandbox Code Playgroud)

...然后这个过程永远不会完成。如果我让我的计算机运行 24 小时,ffmpeg仍在使用最大可用 CPU (200-300%)。输出文件的长度为 48 个字节。

注意: …

ffmpeg

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

Django 直接从外部存储提供文件

我有一个基于 Google Cloud Platform 构建的 Django 项目。我们使用的是 Django 的身份验证系统,并且大多数(几乎所有)用户都没有在 GCP 项目中设置凭据,因此所有文件身份验证都需要基于 Django 而不是 GCP。

我们的文件存储后端配置非常基本,文件按预期成功上传到 GCS:

DEFAULT_FILE_STORAGE = 'storages.backends.gcloud.GoogleCloudStorage'
GS_BUCKET_NAME = 'my-bucket'
Run Code Online (Sandbox Code Playgroud)

为文件生成的 URL 具有以下形式(同样,正如预期的那样):

https://storage.googleapis.com/my-bucket/my-document.txt
Run Code Online (Sandbox Code Playgroud)

问题是这个存储桶不能公开读取,因为文件具有基于 Django 权限系统中设置的规则的访问控制,每个用户都不同。

如何让 Django 提供文件而不是 GCS 提供的文件?

想到的一个想法是让视图从 GCS 加载文件并将它们传递给请求的客户端,但我怀疑这不会很好地处理大文件,因为我需要将整个文件加载到本地内存(坏)或以块的形式加载文件并将它们以这些块的形式写入响应流,但不知道这是否可以在 Django 中完成。

python django google-cloud-storage google-cloud-platform

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

R中随机森林地块的图例

我使用randomForest函数在R中创建了一个随机森林预测模型:

model = randomForest(classification ~., data=train, ntree=100, proximity=T)
Run Code Online (Sandbox Code Playgroud)

接下来,我绘制模型以查看模型的整体错误:

plot(model, log="y")
Run Code Online (Sandbox Code Playgroud)

这给了我以下情节: 在此输入图像描述

我的问题是如何在这上面添加一个图例,以便我可以看到哪个颜色对应于用于分类的因子中的每个值?因子变量是data$classification.我无法弄清楚要做到这一点的legend()调用.

plot r random-forest

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

Django REST框架在IntegerField中用'null'代替0

我在 Django 中有一个带有 IntegerField 的模型:

class MyModel(models.Model):
    number = models.IntegerField(default=0)
Run Code Online (Sandbox Code Playgroud)

我使用 Django REST Framework 的模型序列化程序:

class MySerializer(serializers.ModelSerializer):
    class Meta:
        model = MyModel
Run Code Online (Sandbox Code Playgroud)

REST 框架创建的 JSON 是:

{
    "number": null
}
Run Code Online (Sandbox Code Playgroud)

问题是,如果我只是按照收到的原样发回,则验证失败。为了使用接收到的 JSON 对象0而不是对象,我需要更改什么null?

django django-rest-framework

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

CSRF 因 Django 应用程序服务的多个域(不是子域)而失败

我有一个 Django 应用程序,主要在 domain.com 下提供服务,但也在其他域下(主要用于测试)。我还有一个单独的子域,为用户提供 Web 应用程序客户端代码。

API 的主域是api.domain.com,并且应用程序正在部署到apps.domain.com. 登台服务器不在同一个域名下;他们住在stagingX.otherdomain.com. 这是我无法控制的。

我遇到的问题是当我尝试从apps.domain.com以下位置登录时遇到 CSRF 失败:

Failed to load resource: the server responded with a status of 403 (OK)
login error: "CSRF Failed: Referer checking failed - http://apps.domain.com/ does not match https://api.domain.com/."
Run Code Online (Sandbox Code Playgroud)

这一个简单的世界,我会简单地设置CSRF_COOKIE_DOMAIN于*.domain.com和完成。但是,这完全破坏了我在部署之前暂存代码的能力,因为直接访问 APIstagingX.otherdomain.com也需要适用于需要运行的不同测试。

任何人都可以启发我我应该如何设置它?我正在后悔决定将应用程序部署到单独的服务器的那一天,但由于其他原因,应用程序部署和 API 部署应该分开......这让我发疯。

提前致谢。

-- 编辑以添加其他信息 --

对于它的价值,我也在使用 CORS 保护。在这种情况下,看起来我可能应该使用某种 CORS 标头而不是 CSRF,但我对 CORS 机制的了解不够充分,无法了解这是否是解决方案所在。我确实已apps.domain.com列入白名单,但这不适用于登录,也可能不适用于其他端点(无法通过登录来检查其他端点)。

django django-csrf csrf-protection

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

MVC 5 自定义成员资格提供程序配置

我正在尝试将 ASP.NET 应用程序迁移到 MVC 5。要迁移的最后一部分是成员资格提供程序。我无法配置应用程序以访问现有的会员资格提供商。

我首先查看 MSDN 的Sample Membership Provider Implementation中的文档。这导致我在我的 Web.config 中输入以下内容:

<membership defaultProvider="MyMembershipProvider">
  <providers>
    <clear />
    <add
      name="MyMembershipProvider"
      type="my.namespace.MyMembershipProvider, my.package.name"
      connectionStringName="MyServiceContext"
      enablePasswordRetrieval="false"
      enablePasswordReset="true"
      requiresQuestionAndAnswer="false"
      requiresUniqueEmail="false"
      writeExceptionsToEventLog="true"
      />
  </providers>
</membership>
<roleManager defaultProvider="MyRoleProvider">
  <providers>
    <clear />
    <add
      name="MyRoleProvider"
      type="my.namespace.MyRoleProvider, my.package.name"
      />
  </providers>
</roleManager>
Run Code Online (Sandbox Code Playgroud)

当我尝试运行该应用程序时,出现以下错误:

The configuration section 'membership' cannot be read because it is missing a section declaration
Run Code Online (Sandbox Code Playgroud)

我可能做错了什么?

asp.net-mvc-5

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