结论:在使用pytest-django测试期间,我的Django连接对象没有看到第二个数据库的表关系.
概述: 我有一个问题,我的Django连接对象似乎得到错误的数据库信息.我偶然发现了这个问题,当我在"客户" DB查询在桌子上,Django的告诉我的关系不存在.使用settings.py数据库部分设置如下:
DATABASES = {
'default': {
'NAME': 'user_data',
'ENGINE': 'django.db.backends.postgres',
'USER': 'postgres_1',
'PASSWORD': 'superS3cret'
},
'customers': {
'NAME': 'customer_data',
'ENGINE': 'django.db.backends.postgres',
'USER': 'postgres_1',
'PASSWORD': 'superS3cret'
}
}
Run Code Online (Sandbox Code Playgroud)
当我在目录上运行'pytest'时,下面的两个游标都从'default'数据库中获取信息:
sql = """SELECT table_name FROM information_schema.tables WHERE table_nameschema='public'"""
default = connections["default"].cursor()
default.execute(sql)
raw_data = default.fetchall()
sql_columns = [col[0] for col in default.description]
df1 = pd.DataFrame(raw_data, columns=sql_columns)
customers = connections["customers"].cursor()
customers.execute(sql)
raw_data = customers.fetchall()
sql_columns = [col[0] for col in customers.description]
df2 = pd.DataFrame(raw_data, columns=sql_columns)
Run Code Online (Sandbox Code Playgroud)
df1和df2的结果完全相同:只有'default'数据库中的表名.
使用pytest-django并使用第二个Postgres数据库会发生这种情况,但有时只会发生. …
我使用Spring的WebSocketConnectionManager来处理WebSocket。有时连接关闭,我必须重新连接。但是我没有找到合适的解决方案。我可以使用WebSocketConnectionManager进行还原(重新连接)会话吗?在我看到的资源中,该连接通过以下代码建立:
@Override
protected void openConnection() {
if (logger.isInfoEnabled()) {
logger.info("Connecting to WebSocket at " + getUri());
}
ListenableFuture<WebSocketSession> future =
this.client.doHandshake(this.webSocketHandler, this.headers, getUri());
future.addCallback(new ListenableFutureCallback<WebSocketSession>() {
@Override
public void onSuccess(@Nullable WebSocketSession result) {
webSocketSession = result;
logger.info("Successfully connected");
}
@Override
public void onFailure(Throwable ex) {
logger.error("Failed to connect", ex);
}
});
}
Run Code Online (Sandbox Code Playgroud)
当我的Spring Boot应用程序启动时,我正在使用此管理器:
WebSocketConnectionManager connectionManager = new WebSocketConnectionManager(
new StandardWebSocketClient(), webSocketHandler, "wss://localhost:8080/ws/");
connectionManager.start();
Run Code Online (Sandbox Code Playgroud)
但是当连接关闭时我该怎么办?我试图从openConnection()复制一段代码,并将其用于直接在webSocketHandler中更新会话,并且它可以工作。但是,这似乎是肮脏的解决方法。
有人知道如何正确执行吗?谢谢。
我希望在 Django 中启用文本压缩。的性能的文档引用的GZip中间件作为文本压缩当前的解决方案。但是,它带有一个严厉的警告:
GZip中间件
压缩所有现代浏览器的响应,节省带宽和传输时间。请注意,GZipMiddleware 目前被认为是一种安全风险,并且容易受到使 TLS/SSL 提供的保护无效的攻击。有关更多信息,请参阅 GZipMiddleware 中的警告。
几个问题:
POST并且启用了 CSRF 中间件,我是否安全?再次,通过文档:
Django 1.10 中的更改:在旧版本中,Django 的 CSRF 保护机制在使用压缩时容易受到 BREACH 攻击。情况不再如此,但您仍应注意不要以这种方式泄露您自己的秘密。
我正在通过 Django(新的迁移)向具有 100 多列的 Postgres 表添加一列。如何使用pandasdata_frame 中的数据更新 PostgreSQL 表中的列?Postgres SQL UPDATE的伪代码是:
UPDATE wide_table wt
SET wt.z = df.z
WHERE date = 'todays_date'
Run Code Online (Sandbox Code Playgroud)
这样做的原因是我正在data_frame使用S3(这是df.z)中的 CSV计算列。Postgres 更新的文档使用起来很简单,但我不确定如何通过 Django、sqlalchemy、pyodbc 或类似工具执行此操作。
如果这有点令人费解,我深表歉意。一个小而不完整的例子是:
z)identifier | x | y | z | date
foo | 2 | 1 | 0.0 | ...
bar | 2 | 8 | 0.0 | ...
baz | 3 | 7 | 0.0 | ... …Run Code Online (Sandbox Code Playgroud) 我有一个在 tomcat 上运行的 Web 应用程序,其最大堆大小设置为 8GB。
如果没有用户登录应用程序,则不可清理的内存(垃圾回收后驻留的内存)会非常低,约为 1GB。在这种情况下,我看到内存持续增长约 4GB,然后垃圾收集器运行,内存再次下降到约 1GB。如果没有用户登录,此模式将继续。
GC 日志显示 Full GC 需要 11 秒,与需要约 1 秒的 Minor GC 相比,这是相当长的时间:
2017-02-14T15:30:44.553+0530: 591.922: [GC (Allocation Failure) [PSYoungGen: 1501051K->631966K(1833472K)] 2392189K->1523112K(3030016K), 1.5100144 secs]
...[Times: user=1.49 sys=0.01, real=1.51 secs]
2017-02-14T15:31:20.335+0530: 627.705: [GC (Allocation Failure) [PSYoungGen: 1553054K->595007K(1842176K)] 2444200K->1570521K(3038720K), 1.3050284 secs]
...[Times: user=1.27 sys=0.04, real=1.31 secs]
2017-02-14T15:33:33.682+0530: 761.052: [GC (Allocation Failure) [PSYoungGen: 1516095K->556800K(1842176K)] 2491609K->1596474K(3038720K), 1.6957154 secs]
...[Times: user=1.67 sys=0.03, real=1.69 secs]
2017-02-14T15:33:35.378+0530: 762.748: [Full GC (Ergonomics) [PSYoungGen: 556800K->365446K(1842176K)] [ParOldGen: 1039673K->1196476K(2018304K)] 1596474K->1561923K(3860480K), [Metaspace: 70472K->70472K(1114112K)], 11.2779843 …Run Code Online (Sandbox Code Playgroud) 我正在入门过程中Fabric 2.4.0,但我无法找到一种优雅且安全的方法来解密我的 SSH 密钥以将其传递给 Fabric。我的代码如下:
\n\n#!/usr/bin/env python3\n"""fabfile"""\nfrom fabric import Connection\n\nc = Connection(\'user@ip.address\')\nresult = c.run(\'uname -s\')\nRun Code Online (Sandbox Code Playgroud)\n\n在这个简单的例子中,运行python fabfile.py我收到错误:
File "/Users/user.name/GitHub/app_name/fabfile.py", line 6, in <module>\nresult = c.run(\'uname -s\')\nFile "<decorator-gen-3>", line 2, in run\nFile "/Users/user.name/anaconda/envs/virtual_env/lib/python3.6/site-packages/fabric/connection.py", line 29, in opens\nself.open()\nFile "/Users/user.name/anaconda/envs/virtual_env/lib/python3.6/site-packages/fabric/connection.py", line 615, in open\nself.client.connect(**kwargs)\nFile "/Users/user.name/anaconda/envs/virtual_env/lib/python3.6/site-packages/paramiko/client.py", line 437, in connect\npassphrase,\nFile "/Users/user.name/anaconda/envs/virtual_env/lib/python3.6/site-packages/paramiko/client.py", line 749, in _auth\nraise saved_exception\nFile "/Users/user.name/anaconda/envs/virtual_env/lib/python3.6/site-packages/paramiko/client.py", line 720, in _auth\nfilename, pkey_class, passphrase\nFile "/Users/user.name/anaconda/envs/virtual_env/lib/python3.6/site-packages/paramiko/client.py", line 571, in _key_from_filepath\nkey = klass.from_private_key_file(key_path, password)\nFile "/Users/user.name/anaconda/envs/virtual_env/lib/python3.6/site-packages/paramiko/pkey.py", line 206, in from_private_key_file\nkey = …Run Code Online (Sandbox Code Playgroud) 我正在开发一个用 Django 编写并使用 PostgreSQL 作为数据库后端的 Web 应用程序。我想启动一个 ReactNative 移动应用程序,以便用户可以离线操作该应用程序。我担心管理数据库冲突,即用户在移动应用程序上离线执行一个操作,在 Web 应用程序中执行一个冲突操作,然后这两个操作需要同步、冲突管理和合并。
我知道您不希望 ReactNative 直接从 ReactNative 连接到您的 PostgreSQL 数据库,如本问题所述。我也知道ReactNative中的 AsyncStorage。我不知道如何最好地整合两者。我看到了几个关于将 Web 应用程序数据与移动数据同步的问题(例如,this),但我正在专门寻找 PostgreSQL 和 ReactNative 解决方案。我在 ReactNative 中看到了很多DB 解决方案的结果,但我不是在寻找新的热点或最终不会维护的宠物项目。我也听说过RealmDB,它看起来不错,但似乎不是免费的。简而言之,我正在寻找最可靠、简单且经过验证的解决方案来管理 ReactNative 中的数据并与 PostgreSQL 同步。
我现在问的是没有任何 ReactNative 代码,因为我想确保我从一开始就正确设置了 ReactNative 应用程序,而不必回去重写我所有的数据存储代码。
举一个非常基本的例子,假设在地铁上且没有 WiFi 或移动数据时,用户task_A从incomplete->complete. 用户到达工作地点后跳上他的笔记本电脑并更改task_Afrom的状态incomplete->in_progress。当用户在 WiFi 上获取他的移动设备并同步应用程序数据时,使用存储的移动数据AsyncStorage和驻留在 PostgresDB 中的数据之间会发生冲突。
ReactNative给定 Web 应用程序使用 Django 和 PostgreSQL的最佳数据存储包装器是什么?
我也在Software Recommendations上问过这个问题,但那里非常安静。
我有一个 Django 项目,正在与 memcached 和 Docker 一起使用。当我sudo docker-compose up在开发中使用时,我希望清除整个缓存。有没有一种方法可以在每次重新运行时cache.clear()按照此问题sudo docker-compose up中所述运行,而不是在开发模式下禁用批量缓存?
我不确定这是否应该进入:
docker-entrypoint.shDockerfiledocker-compose.ymlversion: "3"
services:
redis:
image: "redis:alpine"
command: "redis-server --requirepass ${REDISPASS} --bind 0.0.0.0"
ports:
- '6379:6379'
memcached:
image: "memcached:latest"
ports:
- '11211:11211'
nginx:
image: nginx:latest
volumes:
- ./configuration/nginx/conf.d/:/etc/nginx/conf.d
- ./configuration/nginx/realtime:/etc/nginx/realtime
- ./static_cdn/static_root/static:/static
ports:
- 80:80
- 443:443
depends_on:
- app_main
- app_async_app1
- app_async_app2
app_main:
command: "djangoAppName.settings.prod ${SECRET_KEY} 1 ${DB_PASS} ${REDISPASS}"
image: "django_image_name"
ports:
- 0003:0003
volumes: …Run Code Online (Sandbox Code Playgroud) 为什么pylint在函数外部时接受大写变量,而在函数内部拒绝它们?相反,为什么pylint拒绝camelCase ouside函数并在函数内部接受它?
我刚刚安装了pylint(版本2.2.2)来检查我的Python3。一定错过了某些东西。我相关的Python /软件包版本是:
pylint 2.2.2
astroid 2.1.0
Python 3.6.7 | packaged by conda-forge | (default, Nov 20 2018, 18:20:05)
[GCC 4.2.1 Compatible Apple LLVM 9.0.0 (clang-900.0.37)]
Run Code Online (Sandbox Code Playgroud)
考虑下面的代码(test_1),其中我使用camelCase和大写的变量命名。大写的变量被接受(为什么?)而骆驼的情况被拒绝(我想是因为代码没有包装到函数中)。
'''
Nothing important
'''
fileHandler = open("afile.txt")
for line in fileHandler:
Token = line.split("\t")
Part_1 = Token[0]
print(Part_1)
Run Code Online (Sandbox Code Playgroud)
哪个调用pylint:
$ pylint --py3k --enable=all test_1.py
************* Module test_1
test_1.py:5:0: C0103: Constant name "fileHandler" doesn't conform to UPPER_CASE naming style (invalid-name)
------------------------------------------------------------------
Your code has been rated at 8.00/10 (previous run: 8.00/10, +0.00)
Run Code Online (Sandbox Code Playgroud)
现在,如果我将所有内容都放入一个函数中(test_2)。 …
如何在Eclipse Mars 2.0中使用'search in path'来查找文件名中的字符串模式,还可以在文件夹名称中找到字符串模式?
我在git repo中有一个名为"Personal Finance"的文件夹,我主要使用Eclipse来处理它.当我在文件中搜索"财务"时,显示的唯一搜索结果是文件本身.Eclipse中有没有办法同时搜索文件名和文件夹名?