小编not*_*ter的帖子

更正不同类型的项目数组的JSON模式

我有一个无序的JSON项目数组.根据规范http://tools.ietf.org/html/draft-zyp-json-schema-03#section-5.5,下面的json模式将仅验证数组中的对象是否显示为IN THAT ORDER.我不想指定一个订单,只需验证数组中的对象,无论对象的顺序或数量如何.从规范我似乎无法理解这是如何做到的.

"transactions" : {
    "type" : "array",
    "items" : [
        {
            "type" : "object",
            "properties" : {
                "type" : {
                    "type" : "string",
                    "enum" : ["BUILD", "REASSIGN"]
                }
            }
        },
        {
            "type" : "object",
            "properties" : {
                "type" : {
                    "type" : "string",
                    "enum" : ["BREAK"]
                }
            }
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

validation json jsonschema

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

NginX在代理传递URL中尾随斜杠

我知道这个问题已被多次询问,但在尝试了很多解决方案后,我仍然被卡住了.

我正在使用NginX代理传递给NodeJs应用程序.我正在尝试让url https://example.com代理传递请求http://example.com:8080/?

请求(来自移动应用程序)正在请求https://example.com//哪个nginx正在进行http://example.com:8080//?哪些无效.

我尝试过但没有奏效的事情:

  • merge_slashes on; (默认情况下已启用)
  • rewrite ^/(.*)/$ /$1 permanent;
  • port_in_redirect off;

我的nginx配置:

location = /a {
    proxy_pass http://127.0.0.1:8080;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_read_timeout 300;
}

location ^~ /a/ {
    proxy_pass http://127.0.0.1:8080;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_read_timeout 300;
}
Run Code Online (Sandbox Code Playgroud)

proxy nginx proxypass

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

使用带有psycopg2的try/except或"with closing"?

我在Python中使用Psycopg2来访问PostgreSQL数据库.我很好奇是否可以安全地使用with closing()模式来创建和使用游标,或者我应该使用显式try/except包装查询.我的问题是关于插入或更新,以及交易.

据我所知,所有Psycopg2查询都发生在一个事务中,并且由调用代码来提交或回滚事务.如果在with closing(...块内发生错误,是否发出回滚?在旧版本Psycopg2的,回滚被明确发出close(),但不是这种情况了(见http://initd.org/psycopg/docs/connection.html#connection.close).

通过一个例子,我的问题可能更有意义.这是一个使用的例子with closing(...

with closing(db.cursor()) as cursor:
     cursor.execute("""UPDATE users                    
             SET password = %s, salt = %s
             WHERE user_id = %s""",
             (pw_tuple[0], pw_tuple[1], user_id))
     module.rase_unexpected_error()
     cursor.commit()
Run Code Online (Sandbox Code Playgroud)

当module.raise_unexpected_error()引发错误时会发生什么?交易是否回滚?据我了解事务,我要么提交它们要么回滚它们.那么在这种情况下,会发生什么?

或者我可以这样写我的查询:

cursor = None
try:
    cursor = db.cursor()
    cursor.execute("""UPDATE users                    
            SET password = %s, salt = %s
            WHERE user_id = %s""",
            (pw_tuple[0], pw_tuple[1], user_id))
    module.rase_unexpected_error()
    cursor.commit()
except BaseException:
    if cursor is not None:
        cursor.rollback()
finally:
    if cursor is not None: …
Run Code Online (Sandbox Code Playgroud)

python postgresql psycopg2

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

标签 统计

json ×1

jsonschema ×1

nginx ×1

postgresql ×1

proxy ×1

proxypass ×1

psycopg2 ×1

python ×1

validation ×1