小编use*_*803的帖子

vue - 如何传递包装器组件内的插槽?

所以我用模板创建了一个简单的包装器组件:

<wrapper>
   <b-table v-bind="$attrs" v-on="$listeners"></b-table>
</wrapper>
Run Code Online (Sandbox Code Playgroud)

使用$attrs$listeners传递道具和事件.
工作正常,但包装器如何代理<b-table>命名的插槽给孩子?

components wrapper vue.js vue-component

34
推荐指数
4
解决办法
8424
查看次数

django select_related - 何时使用它

我正在尝试在django中优化我的ORM查询.我使用connection.queries来查看django为我生成的查询.

假设我有这些模型:

class Book(models.Model):
    name   = models.CharField(max_length=50)
    author = models.ForeignKey(Author)

class Author(models.Model):
    name   = models.CharField(max_length=50)
Run Code Online (Sandbox Code Playgroud)

比方说,当我生成一个特定的网页时,我希望显示所有书籍,每个书籍旁边都有作者姓名.另外,我单独展示所有作者.

所以我应该使用

Book.objects.all().select_related("author")
Run Code Online (Sandbox Code Playgroud)

这将导致JOIN查询.即使我之前做了一行:

Author.objects.all()
Run Code Online (Sandbox Code Playgroud)

显然在模板中我会写一些类似的东西{{book.author.name}}.
所以问题是,当我访问外键值(作者)时,如果django已经拥有来自另一个查询的那个对象,那还是会导致额外的查询(对于每本书)吗?如果不是,那么在这种情况下,使用select_related实际上是否会产生性能开销?

django orm select

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

python pip优先顺序与index-url和extra-index-url

我搜索了一下但找不到明确的答案。
目标是拥有两个点指数,一个是私有指数,这将是首要任务。其中之一是标准 PyPI。首要任务是防止代码注入的安全风险。

假设我有一个名为 的库lib,并且我配置index_url = http://my_private_pypi_repoextra_index_url = https://pypi.org/simple

如果 I pip install lib、 和 都lib存在于两个索引中。什么索引会优先?将从哪里安装?

另外,如果pip install lib=0.0.2我的私有索引中存在 0.0.1 版本的 lib。它也会考虑 PyPI 吗?

什么是控制的好方法,某些库仅从私有索引中获取(如果它们存在),并且不会在 PyPI 中查找?

python pip pypi python-packaging

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

POST表单提交后,django显示消息

我有一个POST表格的页面,其动作设置为某个URL.
即假设此页面网址为/form_url/:..

视图/submit_url/处理表单数据.在此之后,我想返回带有成功消息的表单的同一页面.在考虑POST表单的视图中,我使用HttpResponseRedirect,以便从浏览器中"清除"表单数据.但是这样我就无法在表单页面中显示消息,除非我做了类似的事情:

return HttpResponseRedirect("/form_url/?success=1")
Run Code Online (Sandbox Code Playgroud)

然后在模板中检查此参数.我不喜欢这种方式,因为如果用户刷新页面,他仍然会看到成功消息.

我注意到在django管理站点中,删除/添加对象确实在POST提交后使用重定向,并且仍以某种方式显示成功消息.怎么样?

我已经简要地看过django"messaging"应用程序,但我想知道它是如何工作的......

forms django post message

16
推荐指数
5
解决办法
3万
查看次数

django rest框架 - 向后序列化以避免prefetch_related

我有两个型号,Item并且ItemGroup:

class ItemGroup(models.Model):
   group_name = models.CharField(max_length=50)
   # fields..

class Item(models.Model):
   item_name = models.CharField(max_length=50)
   item_group = models.ForeignKey(ItemGroup, on_delete=models.CASCADE)
   # other fields..
Run Code Online (Sandbox Code Playgroud)

我想编写一个序列化程序,它将所有项目组及其项目列表作为嵌套数组获取.

所以我想要这个输出:

[ {group_name: "item group name", "items": [... list of items ..] }, ... ]
Run Code Online (Sandbox Code Playgroud)

正如我所见,我应该用django rest框架写这个:

class ItemGroupSerializer(serializers.ModelSerializer):
   class Meta:
      model = ItemGroup
      fields = ('item_set', 'group_name') 
Run Code Online (Sandbox Code Playgroud)

意思是,我必须为ItemGroup(不是Item)编写序列化器.为了避免很多查询,我传递了这个查询集:

ItemGroup.objects.filter(**filters).prefetch_related('item_set')
Run Code Online (Sandbox Code Playgroud)

我看到的问题是,对于大型数据集,会prefetch_related导致带有非常大的sql IN子句的额外查询,我可以避免使用Item对象上的查询:

Item.objects.filter(**filters).select_related('item_group')
Run Code Online (Sandbox Code Playgroud)

这导致JOIN更好.

是否可以查询Item而不是ItemGroup具有相同的序列化输出?

python django django-models django-related-manager django-rest-framework

13
推荐指数
2
解决办法
830
查看次数

aiohttp 如何在类中保存持久的 ClientSession?

我正在编写一个使用 aiohttp 执行 http 请求的类。根据文档,我不应该为每个请求创建一个 ClientSession,所以我想重用同一个会话。

代码:

class TestApi:
   def __init__(self):
      self.session = aiohttp.ClientSession()

   # async defs methods from here 
Run Code Online (Sandbox Code Playgroud)

做的时候

TestApi()
Run Code Online (Sandbox Code Playgroud)

我收到错误:Unclosed client session

持久化ClientSession对象的解决方案是什么?

python httprequest python-asyncio aiohttp

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

JavaScript中的getUserMedia()在浏览器中规范化.非法调用

当我尝试执行以下操作时:

var getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia;
// now I try to invoke it with some parameters:
getUserMedia(...) // not working!
Run Code Online (Sandbox Code Playgroud)

它在Chrome中引发错误"非法调用".

但如果我这样做:

navigator.getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia;
// now invoke it with the navigator
navigator.getUserMedia(..) // Works
Run Code Online (Sandbox Code Playgroud)

我尝试了一下,我读到它是一个上下文问题.但我仍然无法理解那是什么意思.在第一个例子中,getUserMedia变量最终获得对不是不可取的函数的引用(即,在chrome的情况下,它是webkitGetUserMedia),那么为什么我不能使用这个变量调用它呢?

(这实际上是一个普遍的JavaScript问题,不是WebRTC特有的.)

javascript function invocation getusermedia

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

django 将数据传递给 javascript 的最佳方式

在我发现数据绑定库之前,我曾经将我的数据“绑定”到 DOM。我的问题是,假设我有一个包含模型记录的表,我如何用 JS 构建该表,即将对象传递给 javascript 而不是直接在模板中构建表?

到目前为止,我发现的唯一方法是这样的:

var data = '{{data}}';  
Run Code Online (Sandbox Code Playgroud)

{{data}} 对于此示例,可能是 json。

将模板代码放在 javascript 中对我来说似乎既丑陋又糟糕,而且我也不喜欢在 javascript 中使用全局变量的想法(旧方式,它不能很好地扩展)。它也不允许我把它放在外部 JS 文件中。有没有更好(和干净)的方法?

javascript django variables inject

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

pause()信号处理程序

pause()功能将阻塞,直到信号到达.假设进程得到一个信号并返回pause(),信号处理程序是否会在调用的代码之前执行pause(),或者结果是意外的?

例:

void sigusr1_handler() 
{
   // .. handler code
}

void main() 
{
   // .. bind handler to SIGUSR1

   pause(); // wait for SIGUSR1
   // some more code
}
Run Code Online (Sandbox Code Playgroud)

"更多代码"是否会 sigusr1_handler()完成执行,或者存在竞争条件?如果是这样,解决方案是什么?
除了忙碌之外我什么都想不到,但是根本不需要停顿......

c posix signals pause

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

vue.js v-for两个表行

Vue 2,没有网络包.我想一次渲染两个trs,用于main和detail可扩展行.这就是我想要实现的目标:

<table>
   <tbody>
     <div v-for="item in items">
         <tr></tr>
         <tr class="detail-row"></tr>
     </div>
   </tbody>
</table>
Run Code Online (Sandbox Code Playgroud)

问题是<div>tbody是一个无效的孩子.如何<tr>在每个循环迭代中渲染两个s?

html-table rows vue.js v-for

8
推荐指数
2
解决办法
6231
查看次数