小编kan*_*shk的帖子

django数据库路由与事务

在一个应用程序中参考Django文档中的多个数据库的示例,

https://docs.djangoproject.com/en/dev/topics/db/multi-db/#an-example

"它也没有考虑事务与数据库利用策略的交互."

我如何处理上述交互.

场景是这样的:

我使用postgresql作为我的数据库.我已经设置了一个副本,并希望所有对"auth"表的读取都转到副本.根据文档,我写了一个数据库路由器.现在每当我尝试登录我的应用程序时都会抛出以下错误.

DatabaseError: cannot execute UPDATE in a read-only transaction.
Run Code Online (Sandbox Code Playgroud)

当Django试图保存"last_login"时间时会发生这种情况.因为,在同一视图中,它首先从副本提取记录,然后尝试更新last_login时间.由于它发生在一个事务中,因此使用相同的数据库,即副本.

我该如何处理?

思考?

python django database-replication django-postgresql

6
推荐指数
0
解决办法
550
查看次数

防止onchange事件进入无限循环

我有两个文本字段,一个代表百分比,第二个代表相应的数量.现在我想要的是,当百分比改变时,金额应该改变,当金额改变时,百分比应该相应地改变.我正在使用javascript.

在这种情况下,如果其中任何一个更改,将启动无限循环.

我想要的是,当金额发生变化时,它应该相应地改变百分比,然后循环应该停止.当百分比改变时,它应该相应地改变量,然后循环应该停止.这有什么办法吗?也许是这样的stopPropagation

虚拟JS代码:

value是一个文本框,percentage是另一个文本框

function valueChng(){
    percentage.value = "" + someInteger;
}
function percentageChng(){
    value.value = "" + someInteger;
}
Run Code Online (Sandbox Code Playgroud)

谢谢!!

javascript events onchange event-handling

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

JAVA:将数据(从数据库)导出到Excel并将其发送到客户端

正如标题所示,我需要将一些数据(我从数据库中获取)放入Excel工作表,然后将其发送到客户端,以便用户可以保存,打开或取消操作.

我见过一些关于此的文章,最接近的是:我怎样才能让用户下载我的文件?(Java,MVC,Excel,POI).参考Stevens提供的链接,我尝试了以下代码:

public String execute(){
    setContentDisposition("attachment; filename=\"" + ename + "\"");
    try{
        ServletContext servletContext = ServletActionContext.getServletContext();
        String filePath = servletContext.getRealPath("/WEB-INF/template/excel/mytemplate.xls");
        File file = new File(filePath);
        Workbook wb = WorkbookFactory.create(new FileInputStream(file));
        Sheet sheet = wb.getSheetAt(0);
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        wb.write(baos);
        InputStream excelStream;
        excelStream = new ByteArrayInputStream(baos.toByteArray());
    }catch(Exception e){
        System.out.println(e.getMessage());
    }
    return SUCCESS;
}
Run Code Online (Sandbox Code Playgroud)

这里首先WorkbookFactory没有定义.其次,我无法正确理解代码是如何工作的.

我也找到了这个链接:http://www.roseindia.net/answers/viewqa/Java-Beginners/14930-How-to-export-data-from-database-to-excel-sheet-by-using-java- -in-standalone-project.html.但是这里excel文件保存在服务器上.我希望文件不应该保存在服务器端,它应该直接转到客户端

(如果有帮助)我正在使用:struts 2框架,hibernate

我愿意使用其他东西,如POI API,jQuery或任何其他好东西.

displayTag出于某种原因无法使用.

Javascript将是我的最后一招(尽管我已经实现了它)因为它需要更改浏览器的一些默认安全设置(如果可以避免这种情况我也可以使用javascript).

请告知我现在应该怎么做.

谢谢!!

编辑:

    <result-types>
        <result-type name="jsp" class="org.apache.struts2.views.jsp"/>
        <result-type …
Run Code Online (Sandbox Code Playgroud)

java struts2 inputstream apache-poi

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

Java:将对象添加到对象列表中

它非常简单但不知何故不起作用(怪异!!).

我有一个类类型的列表.我在for循环中将对象添加到列表中.直到添加对象一切正常,但是一旦我尝试访问列表,只显示最后一个对象的值(参考我在下面显示的输出).这里还有代码:

    List<myClass> myClassList = new ArrayList<myClass>();
    myClass myClassObj = new myClass();

    for(int i=0;i<someArray.length;i++){
        myClassObj.setProperty1("value1");
        myClassObj.setProperty2("value2");
        myClassObj.setProperty3("value3");
        ...
        ...Others
        ...
        System.out.println(myClassList.add(myClassObj));////////////////////////
    }

    System.out.println(myClassList.size());/////////////////////////////////////

    for(int i=0;i<myClassList.size();i++){
        System.out.println(myClassList.get(i).getProperty1());/////////////////
        .....
        .....Others
        .....
    }
    Iterator<myClass> mcItr = myClassList.iterator();
    while(mcItr.hasNext()){
        myClass obj = mcItr.next();
        System.out.println(obj.getProperty1());
        .....
        .....Others
        .....
    }
Run Code Online (Sandbox Code Playgroud)

该程序的输出是(如果大小someArray5):

    //'true' --> 5 times. Printed by the 'add' statement as it returns 'true' when everything is OK

    //5  --> Size of 'myClassList' this is also OK

    //Here the values …
Run Code Online (Sandbox Code Playgroud)

java struts2

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

Mongodb阅读首选项

建立:

我有一个PRIMARY和两个SECONDARY mongodb实例.其中一个辅助实例与我的Web应用程序托管在同一区域中.

我正在使用pymongo进行连接.

查询:

如何以较低的延迟连接到SECONDARY.

目前我这样做:

  from pymongo import ReplicaSetConnection
  from pymongo import ReadPreference

  db = ReplicaSetConnection('localhost:27017', replicaSet='rs1')['my_db']
  db.read_preference = ReadPreference.SECONDARY
Run Code Online (Sandbox Code Playgroud)

我得到了SECONDARY的任何一个连接.如何强制以较低的延迟从实例获取连接

谢谢!!

mongodb pymongo

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