我是Java新手,来自Python.在Python中我们像这样进行字符串格式化:
>>> x = 4
>>> y = 5
>>> print("{0} + {1} = {2}".format(x, y, x + y))
4 + 5 = 9
>>> print("{} {}".format(x,y))
4 5
Run Code Online (Sandbox Code Playgroud)
我如何在Java中复制相同的东西?
我有一个Redis服务器,我几乎在每个Django视图上查询以获取一些缓存数据.我已经对一些stackoverflow问题做了一些阅读,并了解到r = redis.StrictRedis(host='localhost', port=6379, db=0)为每个Web请求创建一个新的Redis连接是不好的,我应该使用连接池.
以下是我在Django中为连接池提出的方法:
在settings.py这样我就可以在任何Django的观点很容易拉起来,因为这就像一个全局变量:
# Redis Settings
import redis
REDIS_CONN_POOL_1 = redis.ConnectionPool(host='localhost', port=6379, db=0)
Run Code Online (Sandbox Code Playgroud)
在一些views.py:
from django.conf import settings
REDIS_CONN_POOL_1 = settings.REDIS_POOL_1
r = redis.Redis(connection_pool=REDIS_CONN_POOL_1)
r.get("foobar") # Whatever operation
Run Code Online (Sandbox Code Playgroud)
所以,我的问题是:这是在Django中进行连接池的正确方法吗?对于那些经历过类似场景的人来说,有没有更好的方法?这可能比我在每次请求时打开和关闭与redis的新连接的旧方法更好.
编辑:收集我理解为什么在这个stackoverflow问题的每个请求上打开一个新连接是错误的.
我有一个使用以下注释映射的控制器:
@RequestMapping(value = "/json", method = RequestMethod.GET, produces = "application/json")
@ResponseBody
public String bar() {
return "{\"test\": \"jsonResponseExample\"}";
}
Run Code Online (Sandbox Code Playgroud)
我返回一个有效的JSON字符串,但是当我在浏览器中查看Chrome Dev Tools上的响应时,内容类型application/json不仅仅是简单的text/html.为什么没有设置内容类型?
我的web.xml:
<?xml version="1.0" encoding="UTF-8"?>
<web-app metadata-complete="true" version="3.0"
xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
<display-name>Spring MVC Web Application</display-name>
<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<!-- static assets -->
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.js</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.css</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/dispatcher-servlet.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
</web-app>
Run Code Online (Sandbox Code Playgroud)
我的dispatcher-servlet.xml:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" …Run Code Online (Sandbox Code Playgroud) 我想为当前目录中的所有文件添加后缀.
这是我到目前为止搜索stackoverflow和谷歌(并且有点乱),但它一直在失败.我想将字符串附加3.6.16到.png我的目录中的所有文件.我可以做前缀部分但我的后缀失败(我猜是因为扩展).
使用bash:
for item in *.png; do mv "$file" "${file}_3.6.14.png"; done
Run Code Online (Sandbox Code Playgroud) 我试图将作为字符串给出的路径拆分为子部分,使用"/"作为分隔符递归并传递给元组.例如:"E:/ John/2012/practice/question11"应该是('E:','John','2012','practice','question11').
所以我已经将除了"/"之外的每个字符都传递给了一个元组,但这并不是我想要的例子中显示的子部分联合.这是家庭作业中的一个练习题,在我尝试学习递归时会很感激帮助.
非常感谢
是否可以使用lambda获取?我知道我们可以sorted用lambda 做它的功能非常有用.
是否有一种简短的形式来获取列表中的对象,其中键的对象'id'等于让我们说20?
我们当然可以在整个事物上使用循环和循环.
x = [
{'Car': 'Honda', 'id': 12},
{'Car': 'Mazda', 'id': 45},
{'Car': 'Toyota', 'id': 20}
]
desired_val = None
for item in list:
if item['id'] == 20:
desired_val = item
break
Run Code Online (Sandbox Code Playgroud)
是否可以使用相同的功能lambda?我不是很了解lambda.
id内置函数是反向还是反向?我正在考虑使用它来编码和解码字符串,而不需要花费太多时间或像PyCrypto库那样有很多开销.对我的需求非常简单,所以我不想PyCrypto用于简单的编码和解码.
就像是:
>>> id("foobar")
4330174256
>>> reverse_id(4330174256) # some function like this to reverse.
"foobar"
Run Code Online (Sandbox Code Playgroud) 我制作了 Django 模型,并将测试/虚拟记录插入到 PostgreSQL 数据库后,我意识到每条记录的数据都非常大。所有字段中的数据总和约为每条记录 700 KB。我估计我将拥有大约 500 万条记录,因此这将变得非常大,大约 3350 GB 标记。我的大部分数据都是大型 JSON 转储(每个字段大约 70+ KB)。
我不确定 PostgreSQL 在通过 Django 框架处理时是否会自动压缩我的数据。我想知道在将数据输入数据库之前是否应该压缩数据。
x问题:使用 Django 模型字段类型时,PostgreSQL 是否会使用某种压缩算法自动压缩我的字符串字段TextField?
我是否应该依赖 PostgreSQL 并预先压缩我的数据,然后将其输入数据库?如果是这样,我应该使用哪个压缩库?我已经zlib在Python中尝试过了,看起来很棒,但是,我读到gzip也有库,但我很困惑哪个是最有效的(就压缩和解压缩速度以及压缩百分比而言)。
编辑:我正在阅读CompressedTextField 的 Django 代码片段,这引发了我对使用哪个压缩库的困惑。我看到有些人用zlib,有些人用gzip。
编辑2:这个stackoverflow问题说PostgreSQL自动压缩字符串数据。
编辑3:PostgreSQL使用pg_lzcompress.c进行压缩,它是LZ压缩系列的一部分。可以安全地假设我们不需要对其本身使用某种其他形式的压缩(zlib或),因为它在数据库本身中是数据类型(可变长度字符串)?gzipTextFieldtext
如果Django Model的字段与条件匹配,则将其分配给值.
g = Car.objects.get(pk=1234)
g.data_version = my_dict['dataVersion'] if my_dict else expression_false # Do nothing??
Run Code Online (Sandbox Code Playgroud)
在那种情况下我怎么办?我们做不到if conditional else pass.
我知道我能做到:
if my_dict:
g.data_version = my_dict['dataVersion']
Run Code Online (Sandbox Code Playgroud)
但我想知道是否有办法进行内联expression_true if conditional else do nothing.
我的Promise定义如下:
myFunc = function() {
$.getJSON("./rest/api/some/url", function(json, textStatus) {
console.log("AJAX call hit!");
});
};
$.when(myFunc()).then(function() {
console.log("Then block hit!");
});
Run Code Online (Sandbox Code Playgroud)
并在控制台中输出为:
Then block hit!
AJAX call hit!
Run Code Online (Sandbox Code Playgroud)
我需要第AJAX call hit!一个,然后是Then block hit!.
知道为什么会这样吗?我甚至试图实现一个自定义回调函数(我在Stackoverflow上找到的标准示例),它仍然无法正常工作.
python ×7
django ×3
java ×2
ajax ×1
bash ×1
built-in ×1
compression ×1
conditional ×1
content-type ×1
database ×1
format ×1
if-statement ×1
inline ×1
javascript ×1
jquery ×1
json ×1
lambda ×1
path ×1
placeholder ×1
postgresql ×1
promise ×1
recursion ×1
redis ×1
split ×1
spring ×1
spring-mvc ×1
string ×1
tuples ×1
uuid ×1