小编Jam*_*May的帖子

为什么 append 修改传递的切片

我如何遍历切片并将切片传递到当前元素之外的某个地方?正如我们在文档中看到的那样,似乎append()函数修改了底层切片。但无论如何我仍然不知道如何达到这一点。

func main() {
    args := []string{ "2", "3", "8" }

    for i, _ := range args {
        fmt.Println(append(args[:i], args[i+1:]...)) // or pass to function
    }

    fmt.Println(args)
}
Run Code Online (Sandbox Code Playgroud)

结果:

[3 8]
[3 8]
[3 8]
[3 8 8] // it is args now
Run Code Online (Sandbox Code Playgroud)

我的期望:

 [3 8]
 [2 8]
 [2 3]
Run Code Online (Sandbox Code Playgroud)

我已经看到这个为什么 append() 修改提供的切片?(见示例)

但是切片的容量是多少对我来说是秘密,我不明白为什么我超过了它。

go

11
推荐指数
3
解决办法
6727
查看次数

sqlalchemy.exc.ProgrammingError :( ProgrammingError)关系不存在

我正在通过创建新项目来尝试金字塔.我选择PostgreSQL和sqlalchemy.现在我有一个手动创建的表"照片"和一个模型:

class Photo(Base):
    """ The SQLAlchemy declarative model class for a Photo object. """
    __tablename__ = 'photo'

    id = Column(Integer, primary_key=True)
    name = Column(Text)
    filename = Column(Text)
    cat_id = Column(Integer)
    viewed = Column(Integer)
    created = Column(DateTime)

    def __init__(self, name):
        self.name = name
Run Code Online (Sandbox Code Playgroud)

然后在视图中我试图过滤一些记录:

walls = DBSession.query(Photo).filter(Photo.cat_id == 20).limit(10)
Run Code Online (Sandbox Code Playgroud)

但是这一小段代码不起作用,我有一个错误:

[sqlalchemy.engine.base.Engine][Dummy-2] {'param_1': 1, 'cat_id_1': 20}
*** sqlalchemy.exc.ProgrammingError: (ProgrammingError) relation "photo" does not exist
LINE 2: FROM photo 
             ^
 'SELECT photo.id AS photo_id, photo.name AS photo_name, photo.filename AS photo_filename, photo.cat_id AS photo_cat_id, …
Run Code Online (Sandbox Code Playgroud)

sqlalchemy pyramid

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

NodeJS的简单WebSocket应用程序

我将创建一个简单的WebSocket应用程序,等待客户端连接.客户端将是Android用户,应用程序本身就是两个人的简单聊天.所以对于Android应用程序,我需要知道WebSocket地址(以ws://wss://开头).我已经有了一些网站,我安装了nodejs.但几天之后,我完全坚持了正在发生的事情以及如何让事情发挥作用.我甚至很高兴看到nodejs捕获任何WebSocket消息,就是这样.

我阅读了一些关于nodejs和socket.io的手册,我再也不知道从哪里获取ws://地址并让它以某种方式工作.

例如,从socket.io聊天手册,我们有:

var app = require('express')();
var http = require('http').Server(app);
var io = require('socket.io')(http);

app.get('/', function(req, res){
  res.sendfile('index.html');
});

io.on('connection', function(socket){
  console.log('a user connected');
});

http.listen(3000, function(){
  console.log('listening on *:3000');
});
Run Code Online (Sandbox Code Playgroud)

那是否已经是简单的websocket应用程序?在那种情况下,我想要的ws://地址在哪里?也许我应该在我的服务器上上传那堆代码并将查询发送到ws://mydomain.com:3000

websocket node.js socket.io

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

在Symfony 3中组织模型

我只是阅读官方的Symfony 3文档并指出当我需要从数据库中检索对象时我应该使用这样的东西:

$repository = $em->getRepository('AppBundle:Product');
Run Code Online (Sandbox Code Playgroud)

这里Product只是一个没有父级的实体类,因此Doctrine通过注释来处理它.但我不确定用引号对模型名称进行硬编码是个好主意.如果稍后我总结出将模型命名为Good,我应该搜索整个项目并替换Good on Good.以Laravel为例,每个模型都扩展了基础模型类,所以我可以写:Product::model()->find('nevermind').Symfony 3.3中有没有这样的选项?

php symfony doctrine-orm

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

在 php 7.2 的测试中替换 Symfony 服务

我正在尝试将我在 Symfony 3.3 和 php 7.1 上运行的应用程序升级到 php 7.2,但是当我运行 phpunit 时遇到了大量已弃用的消息。最烦人的是:

"user.user_service" 服务已经初始化,替换它自 Symfony 3.3 起已被弃用,并将在 4.0: 7x 中失败

这是因为我在 setUp 方法中有这一行:

$this->userService = $this->getMockBuilder(UserService::class)
    ->setMethods(['update'])
    ->getMock();
$container->set('user.user_service', $this->userService);
Run Code Online (Sandbox Code Playgroud)

7x 是因为我在那个班级有 7 个测试用例,并且为每个测试用例触发了 setUp。我该如何处理这个问题?我无法删除这个模拟,因为它很重要。

我不明白为什么 Symfony 完全指向这个测试用例,因为我在所有测试中都以这种方式替换了很多服务。在这个setUp方法之前我没有在任何地方替换这个服务,所以很奇怪。

php phpunit symfony php-7.2

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

SQLAlchemy中的验证

如何在SQLAlchemy中获取所需的验证器?实际上我只是想确保用户填写表格中的所有必填字段.我使用PostgreSQL,但它没有意义,因为从models.py文件中的Objects创建的表:

 from sqlalchemy import (
    Column,
    Integer,
    Text,
    DateTime,
    )

from sqlalchemy.ext.declarative import declarative_base

from sqlalchemy.orm import (
    scoped_session,
    sessionmaker,
    )

from zope.sqlalchemy import ZopeTransactionExtension

from pyramid.security import (
    Allow,
    Everyone,
    )

Base = declarative_base()


class Article(Base):
    """ The SQLAlchemy declarative model class for a Article object. """
    __tablename__ = 'article'

    id = Column(Integer, primary_key=True)
    name = Column(Text, nullable=False, unique=True)
    url = Column(Text, nullable=False, unique=True)
    title = Column(Text)
    preview = Column(Text)
    content = Column(Text)
    cat_id = Column(Integer, nullable=False)
    views = …
Run Code Online (Sandbox Code Playgroud)

python sqlalchemy pyramid

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

在 ClickHouse 中按计数过滤 WHERE

我正在尝试迁移 ClickHouse 中的一个 Postgres 表。这是我在 ClickHouse 想到的:

CREATE TABLE loads(
    country_id UInt16,
    partner_id UInt32,
    is_unique UInt8,
    ip String,
    created_at DateTime
) ENGINE=MergeTree PARTITION BY toYYYYMM(created_at) ORDER BY (created_at);
Run Code Online (Sandbox Code Playgroud)

is_unique 这里是一个带有 0 或 1 的布尔值。我想知道聚合的计数:country_id、partner_id 和created_at,但我也想知道这些负载中有多少是唯一负载。在 Postgres 中,它看起来像:

SELECT
    count(*) AS loads,
    count(*) FILTER (WHERE is_unique) AS uniq,
    country_id,
    partner_id,
    created_at::date AS ts
FROM loads
GROUP BY ts, country_id, partner_id
Run Code Online (Sandbox Code Playgroud)

ClickHouse 可以吗?还是我应该重新考虑如何聚合数据?我在手册中没有找到任何线索,除了count可以得到expr而不是星号,但count(is_unique = 1)不起作用,只是返回与 count(*) 相同的数量。

clickhouse

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

覆盖AdminSite以附加自定义URL

我按照手册中的描述覆盖了默认的AdminSite类,尽管它过于纯粹,有关于此部分的信息.
我的gs/admin.py文件:

from django.contrib.admin import AdminSite
from django.conf.urls import patterns, url
from gs.views import *

class AdminSiteGs(AdminSite):

    def get_urls(self):
        urls = super(AdminSiteGs, self).get_urls()

        urls += patterns('',
             url(r'^my_admin_view/$', self.admin_view(my_admin_view))
        )

        return urls

admin_site_gs = AdminSiteGs()
Run Code Online (Sandbox Code Playgroud)

GS这是我的应用程序和项目名称.

gs/urls.py文件:

from django.conf.urls import patterns, include, url
from page import views
from gs.admin import admin_site_gs

urlpatterns = patterns('',
    url(r'^admin/', include(admin_site_gs.urls)),
)
Run Code Online (Sandbox Code Playgroud)

我有应用程序命名页面,我在其中放置admin.py文件:

from gs.admin import admin_site_gs
from page.models import Page, Menu
from django.contrib import admin

class PageAdmin(admin.ModelAdmin): …
Run Code Online (Sandbox Code Playgroud)

python django django-admin

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

无法将张量流图像保存到文件中

我需要将图像调整到一定大小并将其保存到文件中,所以我选择了tf.image.resize_image_with_crop_or_pad函数:

import tensorflow as tf

image_decoded = tf.image.decode_jpeg(tf.read_file('1.jpg'), channels=3)
cropped       = tf.image.resize_image_with_crop_or_pad(image_decoded, 200, 200)
tf.write_file('2.jpg', cropped)
Run Code Online (Sandbox Code Playgroud)

错误失败:

Traceback (most recent call last):
  File "/home/test/anaconda3/lib/python3.5/site-packages/tensorflow/python/framework/op_def_library.py", line 490, in apply_op
    preferred_dtype=default_dtype)
  File "/home/test/anaconda3/lib/python3.5/site-packages/tensorflow/python/framework/ops.py", line 669, in convert_to_tensor
    ret = conversion_func(value, dtype=dtype, name=name, as_ref=as_ref)
  File "/home/test/anaconda3/lib/python3.5/site-packages/tensorflow/python/framework/ops.py", line 583, in _TensorTensorConversionFunction
    % (dtype.name, t.dtype.name, str(t)))
ValueError: Tensor conversion requested dtype string for Tensor with dtype uint8: 'Tensor("control_dependency_3:0", shape=(200, 200, 3), dtype=uint8)'

During handling of the above exception, another exception occurred:

Traceback (most recent call …
Run Code Online (Sandbox Code Playgroud)

python tensorflow

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

糟糕的Golang HTTP服务器性能

我试图弄清楚即使使用简单的“ Hello World”响应也可能会有5600 rps。我尝试了starndard net / http,echo和fasthttp。这是后者的一个示例:

func main() {
    router := routing.New()

    router.Get("/", func(c *routing.Context) error {
        fmt.Fprintf(c, "Hello, world!")
        return nil
    })

    panic(fasthttp.ListenAndServe(":7777", router.HandleRequest))
}
Run Code Online (Sandbox Code Playgroud)

我使用ab和wrk进行测试。这是wrk命令:

$ wrk -t10 -c100 -d10s http://somesite.com
Running 10s test @ http://somesite.com
  10 threads and 100 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency    17.05ms    1.08ms  33.46ms   91.30%
    Req/Sec   587.80     33.97   670.00     84.92%
  58603 requests in 10.10s, 8.27MB read
Requests/sec:   5802.71
Transfer/sec:    838.67KB
Run Code Online (Sandbox Code Playgroud)

我尝试在两个不同的服务器上。其中一个是一个简单的Digital Ocean实例,另一个则专用于32G RAM,8个内核和1Gb网络通道。两台服务器的结果相同。我在其中一个上运行fasthttp应用程序,在另一个上运行wrk,反之亦然。

high-load go

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