我注意到自2005年以来XML :: RSS :: Parser尚未更新.这仍然是解析RSS或Atom的推荐库吗?有更好的方式还是更好的方式?
我正在为某人创建一个博客.他们希望获取大量数据并将其非常紧密地集成到设计中,因此标准小部件是禁止的.到目前为止一切都很好.
他们有一个公共访问Google日历,上面有各种活动,我想抓住接下来的5个事件(从"现在"开始)并显示事件标题,当事件的实例开始时,它的位置和gcal的链接项目.
从我所看到的,抓取gcal提要有三种选择:XML,ical或HTML(包含一些非常重要的JSON).XML似乎是合乎逻辑的选择,对吧?
那么XML feed(在原子提要描述之后)实际上只是很多非常有趣的HTML.解析这是可能的,但后面是一个巨大的痛苦,因为重复发生的事件(日历上有几个)只显示该事件的第一个实例,并且(显然)没有关于下一个实例的时间的信息.
我只是有点密集吗?有没有办法显示我想要只是黑客攻击XML API?
或者我会通过iCal获得更好的运气吗?我从来没有用PHP做过任何iCal,所以如果你有,请建议你用过的任何libs让你自己更简单.
编辑:多亏了答案,我下载了Zend Gdata包(谢天谢地,它与Zend Framework的其余部分分开).做我需要的就像这样简单:
require_once 'Zend/Loader.php';
Zend_Loader::loadClass('Zend_Gdata');
Zend_Loader::loadClass('Zend_Gdata_HttpClient');
Zend_Loader::loadClass('Zend_Gdata_Calendar');
$service = new Zend_Gdata_Calendar();
$query = $service->newEventQuery();
$query->setUser('your_user@googlemail.com');
$query->setVisibility('public');
$query->setProjection('full');
$query->setStartMin(date('Y-n-j'));
$query->setStartMax(date('Y-n-j', time() + (60*60 *24*8)));
$query->setOrderby('starttime');
try { $eventFeed = $service->getCalendarEventFeed($query); }
catch (Zend_Gdata_App_Exception $e) { return; }
foreach ($eventFeed as $event)
echo $event; // do something real here
Run Code Online (Sandbox Code Playgroud)
这应该可以让你获得一周的活动(是的,setStartMax是独家的,因此需要将它设置为8天).
希望这有助于将来的其他人.
在Kivy语言中,可以使用类似的东西来引用根小部件
<RootWidget>:
BoxLayout:
SomeButton:
on_press: print root
Run Code Online (Sandbox Code Playgroud)
但尝试从Python访问root是不可能的
class SomeButton(Button):
def __init__(self, **kwargs):
super(SomeButton, self).__init__(**kwargs)
self.text = "Button"
self.font_size = 15
def on_press(self, *args):
print root
Run Code Online (Sandbox Code Playgroud)
并将导致
NameError: global name 'root' is not defined
Run Code Online (Sandbox Code Playgroud)
或者如果使用self.root,
AttributeError: 'SomeButton' object has no attribute 'root'
Run Code Online (Sandbox Code Playgroud) 安装了linter-pep8后出现此错误.
Error: spawn pycodestyle ENOENT
at exports._errnoException (util.js:1026:11)
at Process.ChildProcess._handle.onexit (internal/child_process.js:193:32)
at onErrorNT (internal/child_process.js:359:16)
at _combinedTickCallback (internal/process/next_tick.js:74:11)
at process._tickCallback (internal/process/next_tick.js:98:9)
Run Code Online (Sandbox Code Playgroud) 我需要将应用程序日志共享到已安装的卷.我想将相同的卷安装到所有docker容器以保留日志.可能吗?它会影响在每个容器上运行的应用程序吗?
docker run -d --name C1 -v /home/ubuntu/logs:/usr/local/apache/htdocs/ httpd
docker run -d --name C2 -v /home/ubuntu/logs:/etc/app/logs my-docker-image:latest
docker run -d --name C3 -v /home/ubuntu/logs:/usr/logs TestImage:latest
Run Code Online (Sandbox Code Playgroud) 我在Docker中使用一个简单的Linux机器.在Linux中使用它,我克隆我的dev存储库并将repo作为卷安装在Docker中.然后,当我进入Docker容器时,卷中的文件属于组1000中的用户1000(一切都很好,因为Docker正确保留了所有文件所有者).现在我试图在macOS中做同样的事情,但在我的macOS机器上,我的uid是501而我的gid是20.但是当我去容器时,我意识到里面的文件有gid和uid 0,同样的作为根.如何在Docker中保留文件所有权?
每次我运行“create-react-app”时,我的初始化项目都会使用 2 个而不是 4 个缩进空间。如何自动转换为4个tab?
我使用 Atom 作为文本编辑器。在“config.cson”下,制表符长度始终设置为 4。
我试图将一个站点嵌入另一个站点.我控制两台服务器,我将在这里称为"site1.com"(浏览器中的站点)和"site2.com"(我试图嵌入的站点).
尝试1,使用iframe标记:
<iframe height="600" width="600" name="my other site"
src="https://site2.com/foo/bar">
Unable to display--your browser does not support frames.
</iframe>
Run Code Online (Sandbox Code Playgroud)
尝试2,使用object标签:
<object type="text/html" height="600" width="600" name="my other site"
data="https://site2.com/foo/bar"></object>
Run Code Online (Sandbox Code Playgroud)
我已经读过Firefox不允许将HTTP嵌入到HTTPS页面中.这两个站点都是HTTPS,因此没有不匹配.加载的资源(CSS等)也是来自同一来源的https,因此没有混合内容问题.
我曾尝试设置security.mixed_content.block_active_content到false,如果我错了这一点,但在iframe还是空白.
这两个站点都使用有效的证书,由适当的受信任机构签名,并且未过期.实际上,我们使用的是子域通配符证书,因此它们都使用相同的证书(它们都在同一个子域中).
我想要嵌入的网站有这个响应头:
X-Frame-Options: ALLOW-FROM SITE1.COM
Run Code Online (Sandbox Code Playgroud)
我试图嵌入的网站有这个响应标题(为了便于阅读而包含在这里):
Content-Security-Policy:
frame-ancestors https://site1.com;
default-src 'self';
script-src https://site1.com 'self' 'unsafe-inline';
style-src https://site1.com 'self' 'unsafe-inline'
Run Code Online (Sandbox Code Playgroud)
额外的披露,可能不需要 - 这些头文件是由Django应用程序服务器使用此配置和"django-csp"模块生成的.
X_FRAME_OPTIONS = 'Allow-From site1.com'
CSP_FRAME_ANCESTORS = ('https://site1.com',)
CSP_STYLE_SRC = ('https://site1.com', "'self'", "'unsafe-inline'")
CSP_SCRIPT_SRC = ('https://site1.com', "'self'", "'unsafe-inline'")
Run Code Online (Sandbox Code Playgroud)
我的理解是,当请求包含"Origin"标头时,CORS才会起作用.这似乎没有发生在这里.我也试过使用这个头来解决CORS问题: …