我使用以下命令集创建用户.这应该在admindb和我的目标db(c2d)中创建用户:
# mongo 127.0.0.1:27017
MongoDB shell version: 3.2.6-29-g5c19788
connecting to: 127.0.0.1:27017/test
> use admin
switched to db admin
> show collections
system.users
system.version
> db.system.users.find()
> db.createUser({user:"cd2", pwd:"cd2", roles:[{role:"dbOwner", db: "c2d"}]})
Successfully added user: {
"user" : "cd2",
"roles" : [
{
"role" : "dbOwner",
"db" : "c2d"
}
]
}
> db.system.users.find()
{ "_id" : "admin.cd2", "user" : "cd2", "db" : "admin", "credentials" : { "SCRAM-SHA-1" : { "iterationCount" : 10000, "salt" : "4g6t9kC+godz7k6QQOfD+A==", "storedKey" …Run Code Online (Sandbox Code Playgroud) 我在Nginx服务器上运行了多个应用程序:
http://example.com/app1/ctrl/view
http://example.com/app2/ctrl/view
...
Run Code Online (Sandbox Code Playgroud)
我想像这样分配这些应用程序DNS:
http://app1.example.com
http://app2.example.com
...
Run Code Online (Sandbox Code Playgroud)
为此,我尝试了以下服务器块:
server {
listen 80;
server_name app1.example.com;
location / {
proxy_pass http://example.com/app1/$request_uri;
}
}
Run Code Online (Sandbox Code Playgroud)
如果用户未登录,我的应用程序将重定向到URI:
app1/ctrl/user/login?_next=/app/ctrl/view
Run Code Online (Sandbox Code Playgroud)
基本上$request_uri成为(注意加倍的app1实例):
app1/app1/ctrl/user/login?_next=/app/ctrl/view
Run Code Online (Sandbox Code Playgroud)
有没有一种方便的方法来修改$request_uri或更好的方法来解决这个问题?
EDIT1
看来我用以下服务器块解决了我的问题:
server {
listen 80;
server_name app1.example.com;
location / {
set $new_request_uri $request_uri;
if ($request_uri ~ ^/app1/(.+)$) {
set $new_request_uri $1;
}
proxy_pass http://example.com/app1/$new_request_uri;
}
}
Run Code Online (Sandbox Code Playgroud)
如果有人知道更好(或正确" Nginx")的方式,请毫不犹豫地发布答案.
EDIT2
根据评论,我也尝试了以下内容:
server {
listen 80;
server_name app1.example.com;
location / {
proxy_pass http://example.com/app1/;
proxy_redirect /app1/ …Run Code Online (Sandbox Code Playgroud) 似乎here string是在添加换行符.有没有方便的删除方法?
$ string='test'
$ echo -n $string | md5sum
098f6bcd4621d373cade4e832627b4f6 -
$ echo $string | md5sum
d8e8fca2dc0f896fd7cb4cb0031ba249 -
$ md5sum <<<"$string"
d8e8fca2dc0f896fd7cb4cb0031ba249 -
Run Code Online (Sandbox Code Playgroud) 为什么在Python replace中比translate?快1.5倍?
In [188]: s = '1 a 2'
In [189]: s.replace(' ','')
Out[189]: '1a2'
In [190]: s.translate(None,' ')
Out[190]: '1a2'
In [191]: %timeit s.replace(' ','')
1000000 loops, best of 3: 399 ns per loop
In [192]: %timeit s.translate(None,' ')
1000000 loops, best of 3: 614 ns per loop
Run Code Online (Sandbox Code Playgroud) 在以下代码中,轴的标签隐藏在图形线后面:
import numpy as np
import matplotlib.pyplot as plt
X = np.linspace(-np.pi, np.pi, 256, endpoint=True)
C,S = np.cos(X), np.sin(X)
plt.plot(X,C)
plt.plot(X,S)
plt.xticks([-np.pi, -np.pi/2, 0, np.pi/2, np.pi],
[r'$-\pi$', r'$-\pi/2$', r'$0$', r'$+\pi/2$', r'$+\pi$'])
plt.yticks([-1, 0, +1],
[r'$-1$', r'$0$', r'$+1$'])
ax = plt.gca()
ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none')
ax.xaxis.set_ticks_position('bottom')
ax.spines['bottom'].set_position(('data',0))
ax.yaxis.set_ticks_position('left')
ax.spines['left'].set_position(('data',0))
for label in ax.get_xticklabels() + ax.get_yticklabels():
label.set_fontsize(14)
label.set_bbox(dict(facecolor='white', edgecolor='None', alpha=0.75 ))
plt.show()
Run Code Online (Sandbox Code Playgroud)
你可以看到,例如-pi很难看到。有没有办法将轴标签放在前面?
我尝试对文件应用以下建议flac:
for x in *.flac; do
ffmpeg -i "$x" -map 0:a -codec:a copy -map_metadata -1 clean_"$x";
done
Run Code Online (Sandbox Code Playgroud)
但看起来,ffmpeg虽然去掉了大部分metadata,但也添加了自己的指纹。
为什么要加上这个标签呢?摆脱它的最好方法是什么?
在这里,我试图声明一个具有多行值的变量bash:
$ GET="$(cat <<EOF
> GET / HTTP/1.1
> Host: 127.0.0.1:80
>
> EOF
> )"
Run Code Online (Sandbox Code Playgroud)
这肯定有效,但是文档末尾的空白行丢失了:
$ echo "$GET"
GET / HTTP/1.1
Host: 127.0.0.1:80
$ cat <<< "$GET"
GET / HTTP/1.1
Host: 127.0.0.1:80
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用D-Bus APIopenvpn.service提取状态。Systemd
In [1]: import dbus
In [2]: sysbus = dbus.SystemBus()
In [3]: systemd1 = sysbus.get_object('org.freedesktop.systemd1', '/org/freedesktop/systemd1')
In [4]: manager = dbus.Interface(systemd1, 'org.freedesktop.systemd1.Manager')
In [5]: service = dbus.Interface(systemd1, 'org.freedesktop.systemd1.Service')
In [6]: unit = dbus.Interface(systemd1, 'org.freedesktop.systemd1.Unit')
In [7]: unit.ActiveState('openvpn.service')
---------------------------------------------------------------------------
DBusException Traceback (most recent call last)
<ipython-input-7-22857e7dcbd7> in <module>()
----> 1 unit.ActiveState('openvpn.service')
/usr/local/lib/python3.4/dist-packages/dbus/proxies.py in __call__(self, *args, **keywords)
68 # we're being synchronous, so block
69 self._block()
---> 70 return self._proxy_method(*args, **keywords)
71
72 def call_async(self, *args, **keywords): …Run Code Online (Sandbox Code Playgroud) 为 wagtailStreamField块构建自定义模板我发现自己需要以某种方式将当前块的 ID 传递给其他视图。
例如,当 URL 在特定块中被点击时,着陆页view必须确切知道 URL 是在哪个块中被点击的。然后view可以提取与特定块相关联但不一定在视觉上呈现给用户的其他信息。
我目前的策略是使用snippets,因此我可以传递 的 IDsnippet并且view可以获取相关但预先隐藏的数据。
这效果还不错,但人们必须在两个地方编辑内容,我不得不看着他们悲伤的脸。
似乎value块模板上下文中的变量是 的一个实例wagtail.core.blocks.struct_block.StructValue,它使我可以访问块的所有字段,但它似乎没有显示它在数据库中的足迹。
进一步value有一个有趣的属性:value.block,它似乎是用于构造块的实际模型的实例,但我再次找不到任何有用的东西,例如id或pk允许在数据库中识别该实例。
有办法吗?
django python-3.x wagtail wagtail-streamfield wagtail-snippet
bash ×2
python ×2
dbus ×1
django ×1
ffmpeg ×1
herestring ×1
javascript ×1
matplotlib ×1
mongodb ×1
nginx ×1
python-3.4 ×1
python-3.x ×1
systemd ×1
vue.js ×1
vuetify.js ×1
wagtail ×1