目前,当我导入一些代码时,例如:
from datetime import datetime
Run Code Online (Sandbox Code Playgroud)
我看不出它有什么方法.我怎么知道有utcnow()例如.如果有一些sublime插件会很棒,所以我有这个功能,就像在eclipse中用cntr + space方法一样.也可能是在类定义之间有一些导航,或者去属性定义等.

我有两台机器.我的机器IP1(Europe),和其他公共机器IP2(USA).在IP2我有mysql容器中运行带有音量/var/lib/mysql设置在主机上的某个文件夹被复制~/mysqldatabase.3306添加了端口防火墙规则.我也有ssh连接到机器.所以我不知道从哪里开始.通常当没有码头时我只添加
bind-address = 0.0.0.0
Run Code Online (Sandbox Code Playgroud)
作为mysql中的配置,我打开防火墙端口3306(或指向mysql的另一个端口)并且事情有效.所以我可以在IP2机器上的docker之外安装mysql-server软件包(主机是ubuntu16.04)并将其设置为指向该~/mysqldatabase文件夹,但是真的有必要这样做吗?有没有办法直接连接IP1到IP2:mysql_container:mysql_database
我以两种方式运行mysql docker容器.一个是docker文件.另一个是systemctl服务.
docker-compose.yml的一部分:
version: "3"
services:
mysql:
image: mysql:5.7
volumes:
- /home/username/mysqldatabase:/var/lib/mysql
ports:
- '3306:3306'
environment:
MYSQL_ROOT_PASSWORD: rootpass
MYSQL_DATABASE: somedb
MYSQL_USER: someuser
MYSQL_PASSWORD: someuserpassword
Run Code Online (Sandbox Code Playgroud)
mysql.service
[Unit]
Description=Run %p
Requires=docker.service
After=docker.service
[Service]
Restart=always
ExecStartPre=-/usr/bin/docker kill %p
ExecStartPre=-/usr/bin/docker rm -f %p
docker run --rm --name mysql -v /home/username/mysqldatabase:/var/lib/mysql -p 3306:3306 \
-e MYSQL_ROOT_PASSWORD=rootpass -e MYSQL_DATABASE=somedb -e MYSQL_USER=someuser -e …Run Code Online (Sandbox Code Playgroud) 我有列表,应该模拟流:
list = [
{name : 'Str1', age: 10},
{name : 'Str2', age: 10},
{name : 'Str3', age: 10}
];
Run Code Online (Sandbox Code Playgroud)
我Observable从这个列表中创建了一个:
Observable.from(this.list).skip(this.currentPage * this.pageSize).take(this.pageSize).subscribe(data => this.pagerList = data, console.error);
Run Code Online (Sandbox Code Playgroud)
在订阅方法中,我逐个获取值.我应该如何等待返回整个数据然后获取整个列表.有take()运算符,之后Observable必须停止.
我不想在数组中逐个放置每个值.
我是新来的,不仅是角度,还有javascript.
我在Firebase中有此列表
"games":{
"-Kaaaaaaaaaaaaaaaas" : {
"name" : "name_a"
},
"-Kbbbbbbbbbbbbbbbbs" : {
"name" : "name_b"
},
"-Kccccccccccccccccs" : {
"name" : "name_c"
},
"-Kdddddddddddddddds" : {
"name" : "name_d"
},
}
Run Code Online (Sandbox Code Playgroud)
我只想查询其中两个游戏.我有他们的钥匙:
"-Kaaaaaaaaaaaaaaaas"
"-Kbbbbbbbbbbbbbbbbs"
Run Code Online (Sandbox Code Playgroud)
我想这样做:
WHERE key="-Kaaaaaaaaaaaaaaaas" OR key="-Kbbbbbbbbbbbbbbbbs"
...
WHERE key IN ("-Kaaaaaaaaaaaaaaaas" , "-Kbbbbbbbbbbbbbbbbs")
Run Code Online (Sandbox Code Playgroud)
或使用Firebase代码:
var gamesRef = ref.child("games");
var query = gamesRef.orderByKey().equalTo("-Kaaaaaaaaaaaaaaaas" , "-Kbbbbbbbbbbbbbbbbs", ...);
var list = $firebaseArray(query);
Run Code Online (Sandbox Code Playgroud)
这是不可能的,因为equalTo只能接受:
equalTo(String value, String key)
equalTo(double value)
equalTo(double value, String key)
equalTo(String value)
equalTo(boolean value, String key)
equalTo(boolean …Run Code Online (Sandbox Code Playgroud) 如何设置样式 agm-marker-label - max-width 以将文本设置为居中?我可以更改标签位置,但不能为集中标签名称设置最小宽度。
<agm-marker *ngIf="school.lat && school.lng"
[iconUrl]="{url: school.mapMarker, scaledSize: {height: 75,width: 48},labelOrigin:{x:70,y:20}}"
[label]="{text:school.schoolName}"
[longitude]="school.lng | parseFloat"
[latitude]="school.lat | parseFloat">
</agm-marker>
Run Code Online (Sandbox Code Playgroud) 我有两个sql表.表1(id,name)和表2(id,name,table1_id)
sql = text('SELECT t1.*, t2.* FROM table1 t1 '
'LEFT JOIN table2 t2 ON t1.id=t2.table1_id ')
query = db.session.query(Table1, Table2).from_statement(sql).params()
table1_table2_tuple_list = query.all()
Run Code Online (Sandbox Code Playgroud)
如果sql查询的结果是
67, 'some name', 1, 'some name in table 2', 67
Run Code Online (Sandbox Code Playgroud)
然后一切都很好,我有[(<Table1>, <Table2>)] table1_table2_tuple_list
但是如果sql查询的结果是:(也是所有其他代码都是针对此结果)
67, 'some name', Null, Null, Null
Run Code Online (Sandbox Code Playgroud)
然后而不是接收[(<Table1>, None)]
我收到[(None, None)]
如果我稍微改变我的代码:
sql = text('SELECT t1.*, t2.id, t2.name,t1.id FROM table1 t1 '
'LEFT JOIN table2 t2 ON t1.id=t2.table1_id ')
query = db.session.query(Table1, Table2, Table1.id).from_statement(sql).params()
table1_table2_tuple_list = query.all()
Run Code Online (Sandbox Code Playgroud)
然后我收到:
[<Table1>, …Run Code Online (Sandbox Code Playgroud) check_password_hash花费的时间比预期要长得多。使用 Werkzeug 0.12 和 0.9 进行测试。下面的测试显示检查密码大约需要 2 秒。为什么需要这么长时间?
该项目使用GAE - 谷歌应用程序引擎。并且部署在GAE上。不确定 GAE 是否有 werkzeug 库可以覆盖我已安装的库。我使用GAE SDK版本1.9.50
def verify_password(self, password):
logging.info(self.password_hash)
logging.info(str(datetime.now()))
result = check_password_hash(self.password_hash, password)
logging.info(str(datetime.now()))
return result
Run Code Online (Sandbox Code Playgroud)
hash:pbkdf2:sha256:......................................
2017-07-28 13:52:14.904270
2017-07-28 13:52:17.041060
Run Code Online (Sandbox Code Playgroud)
================= 编辑 1 ============ 好的,看来我还没有完全清除我的库文件夹。我尝试了多次,从 Werkzeug==0.9.6 升级到 Werkzeug==0.12 解决了问题。降级到 0.9.6 问题又回来了。
这仅解决了我机器上的问题。在 GAE 服务器上,延迟仍然存在。================= 编辑 2 ============ 创建非常简约的项目后,我再次测试,在 GAE 上的行为是相同的。然后我看到在我的数据库中有两种类型的密码:一种是 sha1,另一种是 sha256。那些 sha1 的人也在 GAE 上快速工作。
我的项目使用以下python库:
requests==2.18.4
requests-toolbelt==0.8.0
Run Code Online (Sandbox Code Playgroud)
并在main.py上调用它
requests_toolbelt.adapters.appengine.monkeypatch()
Run Code Online (Sandbox Code Playgroud)
使用请求库时,App引擎正在记录Google云端日志中的错误消息:
AppEnginePlatformWarning:urllib3在Google App Engine沙箱而不是套接字上使用URLFetch。要直接使用套接字而不是URLFetch,请参阅 https://urllib3.readthedocs.io/en/latest/reference/urllib3.contrib.html。
AppEnginePlatformWarning:URLFetch不支持精细的超时设置,恢复为总URLFetch超时或默认URLFetch超时。
但这实际上只是警告,我的代码可以按预期工作。但是此日志对我来说是有问题的,因为当我查看统计信息时,我不知道日志中是否确实存在错误。这就是为什么我必须以某种方式将其记录为警告。
这是一个stackoverflow答案。该答案指出,如果在GAE标准环境中显示此警告,则代码将正常工作。所以对我来说真的是警告。如何这样登录? AppEnginePlatformWarning:urllib3在Google App Engine沙箱而不是套接字上使用URLFetch
我有查询从数据库中选择用户列表。每个用户对象都有标签列表。这是使用以下关系在 Tag 模型中设置的:
users = db.relationship('User', secondary=user_tag, backref=db.backref('tags', lazy='dynamic'), lazy='dynamic')
Run Code Online (Sandbox Code Playgroud)
当返回查询结果时,我有用户对象:
id {int}1
标签 {AppenderBaseQuery}(选择...)
一切都很好,但我想为 tags 属性分配新列表
user.tags=list()
Run Code Online (Sandbox Code Playgroud)
但是这一行对对象没有任何影响,用户仍然包含 AppenderBaseQuery。这个属性如何变得不可变。我不明白。仍然是 python 新手,如果问题很愚蠢,抱歉。
编辑:
我不会改变数据库。我试图从会话中分离用户对象但没有成功。我已经有了标签列表,只想将其设置为用户对象标签列表。在我将它序列化为 json 并返回带有用户列表的响应之后。通常我使用 url_for 为标签 url 创建,但这次我想与用户一起返回标签列表以使事情更快
我有完全 angular 版本 4.3.2,由于依赖关系我无法更新。所以现在我坚持这个版本。我有一个带有动态参数的对象(里面可以有其他键和值):
let query = {
param1: 1,
param2: 'a'
}
Run Code Online (Sandbox Code Playgroud)
我想做类似的事情:
params = new HttpParams();
params = params.append(query);
return this.httpClient.get(this.config.apiUrl + '/items', {
params: params,
headers: headers
});
Run Code Online (Sandbox Code Playgroud)
但没有这样的 params.append(query) 方法。所以我需要遍历查询键并将它们一一添加到参数中。有没有更简单的解决方案?
编辑1:
根据这个答案,这可以从 angular 5.0.0-beta.6 (2017-09-03) 开始完成,但对我来说不是解决方案。 /sf/answers/3242253031/
python ×5
angular ×2
sqlalchemy ×2
angular5 ×1
docker ×1
firebase ×1
flask ×1
javascript ×1
mysql ×1
observable ×1
ports ×1
python-2.7 ×1
rxjs ×1
sublimetext3 ×1
werkzeug ×1