小编Yoh*_*n D的帖子

使用CherryPy的REST WebService的友好URL

我正在使用CherryPy 3创建一个RESTful WebService但我遇到了一个问题:我希望能够回答如下请求: / customers/1/products/386意味着我想要ID为1的客户端ID为386的所有产品.

所以我尝试使用CherryPy的MethodDispatcher这样做:

class UserController(object):
    exposed = True

    def __init__(self):
        self.product = ProductController()

    @log_io
    def GET(self, *args):
        return "GET Users :" + str(args)


class ProductController(object):
    exposed = True
    @log_io
    def GET(self, *args):
        return "GET Product :" + str(args)
Run Code Online (Sandbox Code Playgroud)

但是,当我请求/ customers/1/products/386时,不是使用正确的参数将我重定向到ProductController.GET,而是使用参数1,"products",386将我重定向到UserController.GET.

要重定向到ProductController.GET我必须查询/ customers/products/386这是不正确的,因为我错过了用户ID参数.

我在这个演示文稿中看到过:使用CherryPy的RESTful Web应用程序,我想要使​​用的路径样式似乎是一个不错的选择.但有没有一种简单的方法来实现Cherry Py?

我听说过CherryPy 3的_cp_dispatch方法,但我没有得到它究竟是什么以及如何使用它.它是否取代了MethodDispatcher?

python rest web-services cherrypy

15
推荐指数
2
解决办法
8367
查看次数

使用 Dagger 2 时我应该将库初始化移到哪里?

我有这个初始化书法默认配置的代码。

public class MyApplication extends Application {

    @Override
    public void onCreate() {
        super.onCreate();

        // The initialization I want to move
        CalligraphyConfig.initDefault(new CalligraphyConfig.Builder()
                        .setDefaultFontPath("fonts/MyFont.ttf")
                        .build()
        );
    }
}
Run Code Online (Sandbox Code Playgroud)

我想在我的项目中使用 Dagger 2,但我不完全了解我应该创建哪些类以及将代码移动到哪里以保持项目干净?

java android dagger-2

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

GreenDAO左加入

考虑我有一个模型:公司1 - N人

我想显示一个名单和公司名称的人员名单.但并非每个人都有公司.

我为了避免每次调用都person.getCompany()导致新的SQL查询,所以我考虑添加一个连接:

QueryBuilder<Person> queryBuilder = session.getPersonDao().queryBuilder();
queryBuilder.join(PersonDao.Properties.CompanyId, Company.class);
queryBuilder.list()
Run Code Online (Sandbox Code Playgroud)

问题是我只得到公司的人,因为生成的查询使用的JOIN等同于INNER JOIN.我想我还需要LEFT JOIN才能让没有公司的人得到.

现在看来GreenDAO似乎不支持LEFT JOIN.是否有另一种方法可以在不进行原始查询的情况下发出请求?

orm android greendao

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

Jacoco Code覆盖多个模块,gradle配置

考虑一个包含多个子项目的项目:

  • presentation (Android应用程序)键入android
  • domain (POJO)类型Java
  • data (Android模块)键入android

我想检查整个项目的工具测试的代码覆盖率。

目前,我刚才添加下列到build.gradlepresentation

buildTypes {
    debug {
        testCoverageEnabled = true
    }
}
Run Code Online (Sandbox Code Playgroud)

通过运行,gradle createDebugCoverageReport我得到的报告仅包含其中的类presentation

仅运行仪器测试时,我需要更改什么才能显示整个项目的每个类的报告?(无单元测试)

java android gradle jacoco

5
推荐指数
0
解决办法
366
查看次数

测试多部分 HTTP 请求中包含的数据文件

我想编写一个功能测试来检查我的 android 应用程序是否正在发送一个包含正确文件的 HTTP 请求(它是一个多部分 http 请求)

public class TestClass {
    @Rule public final MockWebServer server = new MockWebServer();

    @Test
    public void testSendValuesTextJobTest() throws Exception {
        // setting up a mock response on my fake server 
        server.enqueue(new MockResponse()
                  .setResponseCode(200)

        //use android instrumentation to send the HTTP request 
        //containing a multipart file
        ...

        // Retrieve the HTTP request received by the server
        RecordedRequest request = server.takeRequest(5, TimeUnit.SECONDS);
        String body = request.getBody().readUtf8();  // The raw http request

        // Here, I would like …
Run Code Online (Sandbox Code Playgroud)

java android http multipart okhttp3

5
推荐指数
0
解决办法
600
查看次数

使用SQLAlchemy检索所有列,但有些列

我正在创建一个以JSON格式发送特定表的WebService.我使用SQLAlchemy与数据库进行通信.

我想要只检索用户有权查看的列.

有没有办法告诉SQLAlchemy不检索某些列?这不正确,但是这样的事情:

SELECT * EXCEPT column1 FROM table.
Run Code Online (Sandbox Code Playgroud)

我知道可以在SELECT语句中仅指定一些列,但这并不是我想要的,因为我不知道所有的表列.我只想要所有的列而不是一些.

我也尝试获取所有列并删除我不想要的列属性,如下所示:

 result = db_session.query(Table).all()
 for row in result:
     row.__delattr(column1)
Run Code Online (Sandbox Code Playgroud)

但似乎SQLAlchemy不允许这样做.我收到警告:

Warning: Column 'column1' cannot be null 
cursor.execute(statement, parameters)
ok
Run Code Online (Sandbox Code Playgroud)

什么是最优化的方式为你们这样做?

谢谢

python sqlalchemy

3
推荐指数
2
解决办法
4295
查看次数

如何捕获正在运行的程序的屏幕输出?

是否可以从另一个python程序中截取正在运行的程序(使用GUI)的屏幕截图?如果是这样,我可以使用哪些步骤和库?(在Windows上)

例如,假设我运行了calc.exe.我想从myprogram.py中截取显示给用户的内容.

我的目标是分析监控程序上显示的内容.

如果无法将屏幕截图分离为正在运行的预定义程序,我想我将不得不截取全屏截图,但这不太实用.

python

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