本质上,我试图找到一种很好的方法来将更多视图附加到路由器而无需创建自定义路由器.有什么好办法来实现这个目标?
这有点像我想要完成的东西.变量名已被更改,我想引入的示例方法为了这个问题而极为简化.
路由器:
router = routers.SimpleRouter(trailing_slash=False)
router.register(r'myobjects', MyObjectViewSet, base_name='myobjects')
urlpatterns = router.urls
Run Code Online (Sandbox Code Playgroud)
视图集
class MyObjectsViewSet(viewsets.ViewSet):
""" Provides API Methods to manage MyObjects. """
def list(self, request):
""" Returns a list of MyObjects. """
data = get_list_of_myobjects()
return Response(data)
def retrieve(self, request, pk):
""" Returns a single MyObject. """
data = fetch_my_object(pk)
return Response(data)
def destroy(self, request, pk):
""" Deletes a single MyObject. """
fetch_my_object_and_delete(pk)
return Response()
Run Code Online (Sandbox Code Playgroud)
我需要包含的另一种方法类型的一个例子.(这些中有很多):
def get_locations(self, request):
""" Returns a list of location objects somehow related …Run Code Online (Sandbox Code Playgroud) 我试图实现移动平均线的某些东西.
在该系统中,不保证每个时间段的整数数量.我需要计算每个时期的平均值.因此,我不能简单地按数量滑过整数列表,因为这与时间无关.
我可以记录每个值及其相关时间.我们将通过系统运行大量数据,因此"垃圾收集"旧数据非常重要.
值得注意的是,我需要在每个周期结束后将平均值保存到磁盘.但是,在将数据保存到磁盘和引入新时段的数据之间可能会有一些重叠.
我可以使用哪些高效的数据结构来存储,滑动和垃圾收集这类数据?
我正在考虑构建一个Docker Swarm集群.为了保持简单和相对容错的目的,我想简单地运行3个节点作为管理器.
不使用任何专用工作节点时有哪些权衡取舍?有什么我应该知道的可能不明显吗?
我发现这个Github问题提出了类似的问题,但答案对我来说有点模棱两可.它提到表现可能会更糟.它还提到需要更长时间才能达成共识.在实践中,哪些功能会更慢?"需要更长时间达成共识"实际上会产生什么影响?
在MongoDB中,我正在尝试编写Map-Reduce函数,只有在满足特定条件时才会保存数据.
我无法弄清楚如何不从我的减速器发射().它总是以某种方式保存数据.
这是一个通用的例子.忽略数据的上下文 - 我仅为此问题创建了此数据和代码.
数据集:
{ "_id" : ObjectId("52583b3a58da9769dda48853"), "date" : "01-01-2013", "count" : 1 }
{ "_id" : ObjectId("52583b3d58da9769dda48854"), "date" : "01-01-2013", "count" : 1 }
{ "_id" : ObjectId("52583b4258da9769dda48855"), "date" : "01-02-2013", "count" : 1 }
{ "_id" : ObjectId("52583b4f58da9769dda48856"), "date" : "01-03-2013", "count" : 4 }
Run Code Online (Sandbox Code Playgroud)
地图功能:
// Map all data by (date, count)
var map = function() {
var key = this.date;
var value = this.count;
emit(key, value);
}
Run Code Online (Sandbox Code Playgroud)
简化忽略不需要的数据的Reducer.
// Only save …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 git filter-branch 功能替换 git 存储库中的文本数据。
我编写了一个简单的脚本来搜索各种术语并替换它们。它运行得非常慢。我执行了多行 BASH 代码来自定义搜索结果和替换操作。我知道我的代码效率不是很高。我决定继续尝试我的第一行,这应该是半效率的。浏览代码库仍然需要很长时间。
是否可以使用 BASH 或其他简单的方法来搜索我的文件并并行执行查找和替换操作以加快速度?
如果没有,是否有其他建议可以更好地处理这个问题?
这是我正在执行的 Git 命令:
git filter-branch --tree-filter "sh /home/kurtis/.bin/redact.sh || true" \
-- --all
Run Code Online (Sandbox Code Playgroud)
这是我的命令实质上执行的代码:
find . -not -name "*.sql" -not -name "*.tsv" -not -name "*.class" \
-type f -exec sed -i 's/01dPassw0rd\!/HIDDENPASSWORD/g' {} \;
Run Code Online (Sandbox Code Playgroud) 我有一个程序,要求我检查列表中的每个值与同一列表中的每个其他值.如果我确定了满足某些要求的内容,我会将其添加到另一个List中,以便在此过程完成后将其删除.
伪代码:
for value1 in my_list:
for value2 in my_list:
if meets_requirements(value1, value2):
to_be_removed.append(value2)
Run Code Online (Sandbox Code Playgroud)
这看起来很难看.变量的命名约定很难分配或理解.有潜力(虽然非常不可能,在这种情况下)我可能会在迭代时不小心修改列表.性能可能存在问题.
有没有更好的替代方法来执行这些双重迭代?
如果没有,有没有什么方法可以使这个更具可读性和"感觉"像质量代码?
我有大量的单词和短语(词典或词典),其中包含通配符。我需要在一个较小的字符串(目前约150个字符)中找到这些单词和短语的所有实例。
最初,我想反向运行该操作;这是要检查我的较小字符串中的每个单词是否在Lexicon中存在,可以将其实现为哈希表。问题在于我的词典中的某些值不是单个单词,而很多是通配符(例如substri *)。
我正在考虑使用Rabin-Karp算法,但是我不确定这是最佳选择。
什么是执行此操作的有效算法或方法?
样本数据:
该词典包含数百个单词,并且可能会扩展。这些词可能以通配符(星号)结尾。以下是一些随机示例:
我们正在分析的文本(此时)是简短的,非正式的(语法上的)英语陈述。文本的主要示例(同样是在此时)是Twitter Tweet。这些限制为大约140个字符。例如:
Just got the Google nexus without a contract. Hands down its the best phone
I've ever had and the only thing that could've followed my N900.
Run Code Online (Sandbox Code Playgroud)
注意我们正在对本文进行非常简单的情感分析可能会有所帮助;我们的情绪分析技术与我无关。我只是将现有解决方案迁移到“实时”处理系统,并且需要执行一些优化。
出于某种原因,我的分支机构没有出现在Github.然而,当我执行git tag --all它们时,它们显示在那里表明它们没有丢失.
当我在本地存储库中明显有多个分支时,为什么我只能在Github中看到Master Branch?