小编Ale*_*xis的帖子

django-rest-swagger:如何在docstring中指定参数类型

我正在使用django-rest-framwork和django-rest-swagger.

问题是我直接从请求正文中获取数据:

def put(self, request, format=None):
    """                                                                                                                                                                                                
    This text is the description for this API                                                                                                                                                          
    username -- username                                                                                                                                                                               
    password -- password                                                                                                                                                                               
    """
    username = request.DATA['username']
    password = request.DATA['password']
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试来自swagger-ui的请求时,我无法指定"参数类型"(默认情况下是查询,无法找到从docstring更改它的方法)

我已经设法通过从文件"introspectors.py"更改函数build_query_params_from_docstring中的某一行来解决我的问题,但我想知道是否还有其他方法可以做到这一点.

python django-rest-framework

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

phonegap设置资产文件的根目录

我看到的问题很少,但我发现它们不老,没有任何解决方案.

所以我是我的资产文件夹,我有以下树:

 - ressources
  - img
     - logo.png
  - css
     - style.css
 - process1
  - page1.html
 - index.html
Run Code Online (Sandbox Code Playgroud)

当我包含img/logo.png或css/style.css时,我的"index.html"一切正常.

但是要在"page1.html"中获得相同的结果,我必须使用../img/logo.png并且它非常烦人,因为我有很多页面.

我找到了两个难看的解决方案:

  • 复制每个子文件夹中的"ressources"文件夹
  • 创建一个脚本,将所有URL更改为每个操作系统的根目录(file:/// android_asset/www/for android)

cordova

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

如何从android中的javascript函数调用本机cordova插件?

我创建了一个扩展 CordovaPlugin 的 java 类。

例如,

public class SampleCardovaPlugin extends CordovaPlugin {
    @Override
    public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException {
        if (action.equals("echo")) {
            String message = args.getString(0); 
            this.echo(message, callbackContext);
            return true;
        }
        return false;
    }
private void echo(String message, CallbackContext callbackContext) {
    if (message != null && message.length() > 0) { 
        callbackContext.success(message);
    } else {
        callbackContext.error("Expected one non-empty string argument.");
    }
}
Run Code Online (Sandbox Code Playgroud)

}

我使用的是cordova2.5.0。

我如何从我的 javascript 函数中调用这个插件?请只做那些需要的。

android cordova

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

这个语法是什么"......"(省略号)?

我正在查看Blender附加组件的源代码,我看到了一种新语法:

def elem_name_ensure_class(elem, clss=...):
    elem_name, elem_class = elem_split_name_class(elem)
    if clss is not ...:
        assert(elem_class == clss)
    return elem_name.decode('utf-8')
Run Code Online (Sandbox Code Playgroud)

是什么意思...

python

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

无法从继承的类中分配指向方法的指针

我有这两节课:

class   IBaseA
{
public:
  virtual bool  sayHello(std::string&) = 0;
  ~IBaseA(){}
};                                                                                                   

class   BaseA: public IBaseA
{
public:
  virtual bool  sayHello(std::string &str)
  {
    std::cout << "Hello " << str << std::endl;
    return (true);
  }
  BaseA(){}

};
Run Code Online (Sandbox Code Playgroud)

你能解释一下我为什么不能做那样的事情

bool  (IBaseA::*ptr)(std::string&) = &BaseA::sayHello;
Run Code Online (Sandbox Code Playgroud)

错误:无法将'bool(BaseA :: )(std :: string&){又名bool(BaseA ::)(std :: basic_string&)}'转换为'bool(IBaseA :: )(std :: string&){又名bool初始化时(IBaseA ::)(std :: basic_string&)}'

我不明白为什么我不能这样做.

但是,如果我将作业更改为

bool  (IBaseA::*ptr)(std::string&) = &IBaseA::sayHello;
Run Code Online (Sandbox Code Playgroud)

然后我可以毫无问题地使用这个指针

BaseA A;
(A.*ptr)(str);
Run Code Online (Sandbox Code Playgroud)

编辑:感谢您的回答,我在想,因为所有地址都在vtable中,所以根据我对维基百科的理解,它们是相同的位置.

c++

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

使用 flatbuffers 编写结构向量

我有以下课程:

命名空间消息;

struct BBox {
 xmin:float;
 xmax:float;
 ymin:float;
 ymax:float;
}

table msg {
  key:string;
  boxes: [BBox];
}

root_type Message;
Run Code Online (Sandbox Code Playgroud)

要创建对象,我会做一些事情,例如

b = flatbuffers.Builder(0)
msg.msgStart(b)
msg.msgAddKey(b, b.CreateString(key))

v = flatbuffers.Builder(0)
size = len(boxes)
msg.msgBoxesVector(v, size)
for elem in boxes:
    xmin, ymin, xmax, ymax = elem
    BBox.CreateBBox(v, xmin, xmax, ymin, ymax)
boxes = v.EndVector(size)
msg.msgAddBoxes(b, boxes)
obj = msg.msgEnd(b)
b.Finish(obj)
Run Code Online (Sandbox Code Playgroud)

并且没有抛出错误

然而,当我尝试显示结果时,关键是好的,但向量的大小和内容是错误的

rep = msg.msg.GetRootAsmsg(bytearray(b.Output()), 0)
print rep.BoxesLength()  # give me 4 instead of 1 
for i in range(rep.BoxesLength()):
    print rep.Boxes(i).Xmin(),  rep.Boxes(i).Ymin() …
Run Code Online (Sandbox Code Playgroud)

python flatbuffers

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

将元素添加到std :: map时的Segfault

当我尝试在地图中插入一个元素时,我发生了一些奇怪的事情

main.cpp中

S3Wrapper wrapper = S3Wrapper::getS3Wrapper();
int main(){
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

所以基本上只为S3Wrapper调用单例

S3Wrapper.hpp

class S3Wrapper
{
    S3Wrapper(std::string bucketName);
public:
    ~S3Wrapper();
    static S3Wrapper   &getS3Wrapper(std::string name = BUCKET_NAME);
}
Run Code Online (Sandbox Code Playgroud)

和S3Wrapper.cpp

static std::map<std::string, S3Wrapper*> _wrapperMap;
S3Wrapper&  S3Wrapper::getS3Wrapper(std::string name)
{
    auto it = _wrapperMap.find(name);
    if (it == _wrapperMap.end())
    {
        auto t = new S3Wrapper(name);
        _wrapperMap[name] = t;
        return *(_wrapperMap[name]);
    }
    return *(it->second);
}
Run Code Online (Sandbox Code Playgroud)

当我编译时,我没有任何错误/警告但是程序段错误:

g++ main.cpp S3Wrapper.cpp -std=c++0x -ls3 -g3
Run Code Online (Sandbox Code Playgroud)

gdb的结果

Program received signal SIGSEGV, Segmentation fault.
0x00007ffff7937c4a in ?? () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
(gdb) …
Run Code Online (Sandbox Code Playgroud)

c++ stdmap

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

spring MVC,从ObjectError获取被拒绝字段的值

我已经检查了类似的问题,但我没有任何匹配.

我检查一下我是否有错误:

result.getErrorCount() != 0)
Run Code Online (Sandbox Code Playgroud)

在里面我有使用的错误列表

List<ObjectError> ae = result.getAllErrors();
Run Code Online (Sandbox Code Playgroud)

当我使用eclipse的调试模式并且我检查列表中的字段时,我在表单中有良好的id.但是在运行时我无法通过这样做获得价值

for (ObjectError fe : result.getAllErrors())
{
   fe.getField();           
}
Run Code Online (Sandbox Code Playgroud)

java spring-mvc spring-validator

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

获取抛出信号的线程的id

我想知道是否有一种简单的方法可以在不使用中间信号 signal_handlers 的情况下捕获崩溃线程的 id

我有以下代码

void signal_handler(int signal)
{
  std::cout << "Caught the signal:" << signal << std::endl;
}

void    handler_t1(int signal)
{
  std::signal(SIGSEGV, signal_handler);
  std::cout << "Thread 1 have received the signal: " << signal << std::endl;
  std::raise(SIGSEGV);
}

void    f1()
{
  std::signal(SIGSEGV, handler_t1);
  std::cout << "Begin thread 1" << std::endl;
  std::this_thread::sleep_for(std::chrono::seconds(1));
  std::raise(SIGSEGV);
  std::cout << "end thread1" << std::endl;
}

void    f2()
{
  std::cout << "Begin thread 2" << std::endl;
  std::this_thread::sleep_for(std::chrono::seconds(3));
  std::cout << "end thread2" << std::endl;
}

int …
Run Code Online (Sandbox Code Playgroud)

c c++ multithreading signals c++11

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

如何使用火炬从caffe模型中获取图层

在python中,当我想使用caffe从图层获取数据时,我有以下代码

    input_image = caffe.io.load_image(imgName)
    input_oversampled = caffe.io.resize_image(input_image, self.net.crop_dims)
    prediction = self.net.predict([input_image])
    caffe_input = np.asarray(self.net.preprocess('data', prediction))
    self.net.forward(data=caffe_input)
    data = self.net.blobs['fc7'].data[4] // I want to get this value in lua
Run Code Online (Sandbox Code Playgroud)

当我使用火炬时,我有点卡住,因为我不知道如何执行相同的动作.目前我有以下代码

require 'caffe'
require 'image'
net = caffe.Net('/opt/caffe/models/bvlc_reference_caffenet/deploy.prototxt', '/opt/caffe/models/bvlc_reference_caffenet/bvlc_reference_caffenet.caffemodel')
img = image.lena()
dest = torch.Tensor(3, 227,227)
img = image.scale(dest, img)
img = img:resize(10,3,227,227)
output = net:forward(img:float())
conv_nodes = net:findModules('fc7') -- not working
Run Code Online (Sandbox Code Playgroud)

任何帮助,将不胜感激

python lua torch caffe

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

ng2-dragula 和动态形式没有直接同步

我有一个由用户动态生成的表单:

  // this._fb is a FormBuilder
  ngOnInit():void {
    this.myForm = this._fb.group({
      message: this._fb.array([
      ])
    });
Run Code Online (Sandbox Code Playgroud)

生成的json类似于

{
  "message": [
    {
      "type": 1,
      "value": "first message",
    },
    {
      "type": 1,
      "value": "second message",
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

我添加了 ng2-dragula 指令以更改消息顺序

<form [formGroup]="myForm">
  <div formArrayName="message">
    <div [dragula]='"bag-one"' [dragulaModel]='myForm.controls.message.controls'>
      <div *ngFor="let c of myForm.controls.message.controls; let i=index" class="panel panel-default" >
        <div class="panel-body" [formGroupName]="i">
          <label>value</label>
          <input type="text" class="form-control" formControlName="value">
        </div>
      </div>
    </div>
  </div>
Run Code Online (Sandbox Code Playgroud)

拖动功能运行良好,但是当我显示表单的 json 时,它仍然是旧顺序,除非我开始更改字段的内容。在这种情况下,表单已更新。

typescript ng2-dragula angular

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

Django:复制并更新查询集

我有以下型号:

class A(models.Model):
    pass

class B(models.Model):
   a = models.ForeignKey(A, related_name="bs")
Run Code Online (Sandbox Code Playgroud)

然后我有一个函数,我创建一个新的对象记录,A我想复制所有相关的记录B

我做过像这样的事情

def foo(new_a, old_a):
    old_a.bs.all().update(pk=None, a=new_a)
Run Code Online (Sandbox Code Playgroud)

但是我收到以下错误 ERROR - failed to write data to stream: <open file '<stdout>', mode 'w' at 0x7f207949a150>

python django

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

我可以避免所有这些倍数try/catch

我有一个很多boost :: any的向量在这个向量中我需要对std :: vector和IContainer类型的元素执行一些操作

class   IContainer
{
public:
  virtual ~IContainer(){}
  virtual const boost::any operator[](std::string) const = 0;
};

class   AContainer : public IContainer
{
  std::vector<int>      vect_;
  std::string name_;
public:
  AContainer() : vect_({0, 1, 2, 3, 4, 5}), name_("AContainer") {}
  virtual const boost::any operator[](std::string key) const
  {
    if (key == "str")
      return (name_);
    if (key == "vect")
      return (vect_);
    return nullptr;
  }
};
Run Code Online (Sandbox Code Playgroud)

所以我做了以下功能(非常丑陋),但谁工作正常

我是 const std::vector<boost::any>&

for (const auto & elem : m)
    {
      try
        {
          std::vector<int> v = …
Run Code Online (Sandbox Code Playgroud)

c++ boost-any c++11

0
推荐指数
2
解决办法
635
查看次数