我使用 aselect作为移动设备的导航菜单。
因为optgroup在 iOS 上渲染得非常糟糕,我一直在使用禁用选项和连字符来分组一些子菜单。
IE:
<select>
<option value="" disabled>Menu</option>
<option value="sub1">- Sub 1</option>
<option value="sub2">- Sub 2</option>
</select>
Run Code Online (Sandbox Code Playgroud)
option正如预期的那样,在桌面浏览器上无法选择禁用。但是在 iOS 上,您实际上可以选择它,即使它是灰色的。然后触发我的 AJAX 代码来动态更改页面内容,只会造成一团糟。
我可以通过if在我的 AJAX 函数中添加一些检查语句来“蛮力”取消它,但我真的很想知道为什么在 iOS Safari 上首先可以选择禁用的元素?
我的网站在这里(您必须在桌面上将宽度调整为 < 700px,但需要 iOS 才能选择禁用的元素)
如果可能的话,我正在寻找更好的方法来做到这一点:
import subprocess
f = open('temp.file', 'w+')
f.write('hello world')
f.close()
out = subprocess.check_output(['cat', 'temp.file'])
print out
subprocess.check_output(['rm', 'temp.file'])
Run Code Online (Sandbox Code Playgroud)
在此示例中,我正在创建一个文件并将其作为输入传递给cat(实际上不是cat我正在运行,而是解析输入文件的其他程序pcap)。
我想知道的是,在 Python 中是否有一种方法可以创建一个包含某些内容的“类文件对象”,并将这个类文件对象通过管道作为命令行程序的输入。如果可能的话,我认为这比将文件写入磁盘然后删除该文件更有效。
我发现了一些检测特殊键盘命令(例如Ctrl+C或Ctrl+ )的示例D,但我想检测Ctrl+L并按如下方式处理它:
def ctrl_c():
...
signal.signal(signal.SIGINT, ctrl_c)
Run Code Online (Sandbox Code Playgroud)
我只针对 Linux 终端。不需要 GUI 和跨平台解决方案。
我一直在尝试将以下内容从Python转换为node.js. 这是一个简单的程序,使用正则表达式来检查IP地址是公共还是私有:
import re
def is_private_ip(ip):
"""
Returns `True` if the `ip` parameter is a private network address.
"""
c = re.compile('(^127\.0\.0\.1)|(^10\.)|(^172\.1[6-9]\.)|(^172\.2[0-9]\.)|(^172\.3[0-1]\.)|(^192\.168\.)')
if c.match(ip): return True
return False
print is_private_ip('192.168.0.1') # True
print is_private_ip('8.8.8.8') # False
print is_private_ip('109.231.231.221') # False
Run Code Online (Sandbox Code Playgroud)
我在Javascript中实现它,如下所示:
var localIp = new RegExp(/(^127\.0\.0\.1)|(^10\.)|(^172\.1[6-9]\.)|(^172\.2[0-9]\.)|(^172\.3[0-1]\.)|(^192\.168\.)/);
console.log('192.168.0.1'.match(localIp));
console.log('8.8.8.8'.match(localIp));
console.log('109.231.231.221'.match(localIp));
Run Code Online (Sandbox Code Playgroud)
这给了我以下输出:
[ '192.168.',
undefined,
undefined,
undefined,
undefined,
undefined,
'192.168.',
index: 0,
input: '192.168.0.1' ]
null
null
Run Code Online (Sandbox Code Playgroud)
在我看来它是有效的(甚至不确定tbh).应该公开的两个IP正在返回,null所以我猜这是正确的.我不明白其他比赛的输出了吗?我无法弄清楚它意味着什么
我稍微修改了官方文档中的信号示例(页面底部).
我正在打电话sleep 10但是我想在1秒钟后发出警报.当我运行以下代码片段时,需要超过1秒才能触发异常(我认为它会运行整整10秒).
import signal, os
def handler(signum, frame):
print 'Interrupted', signum
raise IOError("Should after 1 second")
signal.signal(signal.SIGALRM, handler)
signal.alarm(1)
os.system('sleep 10')
signal.alarm(0)
Run Code Online (Sandbox Code Playgroud)
如何在单线程应用程序中超时后终止函数?
为了简单起见,假设我正在尝试用 Python 编写命令行双向聊天。我希望用户input()在命令提示符下输入他的消息,但是监听线程可以随时打印消息。默认情况下,这会“破坏”用户的输入。视觉上是这样的:
userB>Stop interuserA wrote:Hey check this out!
rupting me!
Run Code Online (Sandbox Code Playgroud)
我能找到的最接近的是这里的答案,它几乎但不完全是我正在寻找的东西,但它确实向我指出了blessings似乎是我需要的包(尽管我对答案很满意)对于任何软件包,甚至纯 ANSII)。
我想要实现的目标是打印来自用户输入上方的线程的传入输出,以便他的文本不会中断。假设用户正在输入:
userB>Stop inter
Run Code Online (Sandbox Code Playgroud)
突然,一条消息从线程中传入,但我们的用户输入并没有停止:
userA says: Ok I won't interrupt you
userB>Stop inter
Run Code Online (Sandbox Code Playgroud)
print_incoming_message()为了实现这一目标,我的线程理论方法应该是什么样的?
注意:我使用的是 Linux,对跨平台兼容性不感兴趣。
根据文档task.revoke():
所有工作节点都会保留已撤销任务 ID 的内存,无论是在内存中还是在磁盘上持久保存
和
撤销任务的工作原理是向所有工作人员发送广播消息,然后工作人员在内存中保存已撤销任务的列表。当一个worker启动时,它会将撤销的任务与集群中的其他worker同步。
这听起来好像任务在您撤销后仍然存在。我不明白为什么没有明确的方法来撤销任务并将其从队列中删除。
这些文档似乎暗示您需要无限期地保留已撤销任务的列表,以确保新工作人员在某些情况下不会接受它们。
我还知道有一个功能可以完全清除任务队列,但这不是我想要的。
有没有办法撤销任务并从 Celery 的任务队列中清除它(并且仅清除它)?
我正在尝试使用建立两个网络的容器docker-compose。我希望其中一个网络是host网络(即:好像我正在运行docker run --net=host),另一个是用户定义的网络。
我尝试了这个:
version: '3'
networks:
test:
driver: bridge
host:
external: true
services:
helloworld:
image: python:3.6-alpine
networks:
- test
- host
cap_add:
- NET_ADMIN
- NET_RAW
ports:
- 0.0.0.0:8080:8080
command: sh -c "cd /tmp && python -m http.server 8080"
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
$ docker-compose up
Removing blah_helloworld_1
Starting 8743618e8af4_blah_helloworld_1 ... error
ERROR: for 8743618e8af4_blah_helloworld_1 network-scoped alias is supported only for containers in user defined networks
ERROR: for helloworld network-scoped alias is supported only for containers …Run Code Online (Sandbox Code Playgroud) 我正在使用jQuery UI,我注意到输入文件按钮:
<input type="file">
Run Code Online (Sandbox Code Playgroud)
不能像其他按钮一样设计.我发现这个插件看起来很酷,显然可以让你放一个图像而不是按钮,但是这些例子没有显示任何按钮样式.
如果没有jQuery将主题样式应用于该按钮,我可以在CSS中自己设置样式吗?
我正在尝试遵循有关使用配置文件的文档:http : //exploreflask.com/en/latest/configuration.html#the-simple-case
我想使用他们所谓的“简单情况”,但我想config.py从父目录加载。我的项目树如下所示:
~/Learning/test $ tree
.
??? app
? ??? __init__.py
??? config.py
Run Code Online (Sandbox Code Playgroud)
这是我的app/__init__.py:
from flask import Flask
app = Flask(__name__)
app.config.from_object('config')
Run Code Online (Sandbox Code Playgroud)
这是我的config.py:
DEBUG = True
Run Code Online (Sandbox Code Playgroud)
这是我尝试运行项目时遇到的错误:
Traceback (most recent call last):
File "app/__init__.py", line 4, in <module>
app.config.from_object('config')
File "/usr/local/lib/python2.7/dist-packages/flask/config.py", line 163, in from_object
obj = import_string(obj)
File "/usr/local/lib/python2.7/dist-packages/werkzeug/utils.py", line 443, in import_string
sys.exc_info()[2])
File "/usr/local/lib/python2.7/dist-packages/werkzeug/utils.py", line 418, in import_string
__import__(import_name)
werkzeug.utils.ImportStringError: import_string() failed for 'config'. Possible reasons are:
- …Run Code Online (Sandbox Code Playgroud) python ×5
python-3.x ×2
signals ×2
celery ×1
css ×1
docker ×1
file ×1
flask ×1
html ×1
ios ×1
javascript ×1
jquery ×1
jquery-ui ×1
linux ×1
networking ×1
node.js ×1
output ×1
regex ×1
subprocess ×1
timeout ×1