我想解析NGINX错误日志.但是,似乎根本没有关于使用的日志格式的文档.虽然像数据这样的某些字段的含义非常明显,但有些字段根本没有.另外,如果我没有所有可能字段的文档,我无法确定我的解析器是否完整.既然你似乎可以改变访问日志格式,而不是错误日志的格式,我真的不知道如何获取我需要的信息.
有谁知道这样的文件?
这是在最近的PyCon演讲中提出的.
该声明
[] = []
Run Code Online (Sandbox Code Playgroud)
没有任何意义,但它也没有抛出异常.我觉得这一定是因为拆包规则.您也可以使用列表进行元组拆包,例如,
[a, b] = [1, 2]
Run Code Online (Sandbox Code Playgroud)
做你所期望的.作为逻辑结果,当解包的元素数为0时,这也应该有效,这可以解释为什么分配给空列表是有效的.当您尝试将非空列表分配给空列表时会发生什么,这进一步支持了这一理论:
>>> [] = [1]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: too many values to unpack
Run Code Online (Sandbox Code Playgroud)
如果对于元组也是如此,我会对这个解释感到满意.如果我们可以解压缩到包含0个元素的列表,我们也应该能够解包为具有0个元素的元组,不是吗?然而:
>>> () = ()
File "<stdin>", line 1
SyntaxError: can't assign to ()
Run Code Online (Sandbox Code Playgroud)
似乎解包规则不适用于元组,因为它们用于列表.我想不出对这种不一致的任何解释.这种行为有原因吗?
这是在处理Django项目时遇到的问题.这是关于表单验证.
在Django中,当您有一个提交的表单时,您可以调用is_valid()相应的表单对象来触发验证并返回一个布尔值.所以,通常你在视图函数中有这样的代码:
if form.is_valid():
# code to save the form data
Run Code Online (Sandbox Code Playgroud)
is_valid() 不仅验证表单数据,还将错误消息添加到表单对象,然后可以向用户显示.
在一个页面上,我一起使用两个表单,并且只有在两个表单都包含有效数据时才希望保存数据.这意味着我必须在执行代码保存数据之前在两个表单上调用is_valid().最明显的方式:
if form1.is_valid() and form2.is_valid():
# ...
Run Code Online (Sandbox Code Playgroud)
由于逻辑运算符的短路评估,将无法工作.如果form1无效,则不会评估form2,并且将丢失其错误消息.
这只是一个例子.据我所知,没有贪婪替代and/ or在其他语言(如Smalltalk的).我可以想象在不同情况下(而不仅仅是在Python中)发生的问题.我能想到的解决方案都是笨拙的(嵌套ifs,将返回值赋给局部变量并在if语句中使用它们).我想知道解决这类问题的pythonic方法.
提前致谢!
我有一个简单的C-Programm(1源文件),我想在Linux和Windows上通过make resp编译.NMAKE.是否有可能使用单个makefile完成此操作?
我想到了类似的东西
ifeq($(MAKE), nmake)
// nmake code here
else
// make code here
endif
Run Code Online (Sandbox Code Playgroud)
不幸的是nmake似乎不明白ifeq,所以我不能用它.我有一个工作的makefile,但会产生非常难看的结果:
hello: hello.c
$(CC) hello.c
Run Code Online (Sandbox Code Playgroud)
这适用于两个系统.问题是结果取决于各个编译器的默认行为.在Linux下,我得到一个可执行的名为'a.out'而不是'hello'.在Windows下,我得到'hello.exe',但也有'hello.obj',我不想拥有它.
有没有人知道另一种方式?或者我正在尝试绝对不可能的事情?
我试图<text>通过给它一个上边距来定位HTML5 SVG中的元素.让我们说,我希望<text>元素的上边距为10px.这不起作用:
<svg style="height: 100px; border: 1px solid black">
<text fill="#000" x="10" y="10" font-size="50" font-family="Arial">
<tspan>The quick brown fox jumps over the lazy dog</tspan>
</text>
</svg>
Run Code Online (Sandbox Code Playgroud)
问题是,对于SVG文本元素,y距离是从文本的底线而不是顶部开始测量的.此代码生成只有较低10px可见的文本.因此,我们必须将font-size值添加到y值以获得正确的保证金:
<svg style="height: 100px; border: 1px solid black">
<text fill="#000" x="10" y="60" font-size="50" font-family="Arial">
<tspan>The quick brown fox jumps over the lazy dog</tspan>
</text>
</svg>
Run Code Online (Sandbox Code Playgroud)
至少,这就是我的想法.但这也不起作用.现在,上边距太大了,你可以在小提琴中看到:http://jsfiddle.net/yy8gS/2/.我希望上边距与左边距相同,但显然不是这样.事实上,y值48看起来是正确的,但我不知道为什么,或者我如何计算任意边距和字体大小的这个值.在我看来,该font-size值不是SVG用于定位的实际文本高度值.
任何人都可以帮我吗?我正在尝试用SVG做什么?
提前致谢!
我正在努力学习C,因为目前我已经陷入了数据类型.
看看这段代码:
#include <stdio.h>
#include <limits.h>
int main() {
char a = 255;
char b = -128;
a = -128;
b = 255;
printf("size: %lu\n", sizeof(char));
printf("min: %d\n", CHAR_MIN);
printf("max: %d\n", CHAR_MAX);
}
Run Code Online (Sandbox Code Playgroud)
printf输出是:
size: 1
min: -128
max: 127
Run Code Online (Sandbox Code Playgroud)
怎么可能?char的大小是1 Byte,默认的char似乎是签名的(-128 ... 127).那么如何在不发出溢出警告的情况下分配值> 127(我在尝试分配-128或256时得到)?gcc会自动转换为unsigned char吗?然后,当我指定负值时,它会转换回来吗?它为什么这样做?我的意思是,所有这些隐含性都不会让它更容易理解.
编辑:
好吧,它没有转换任何东西:
char a = 255;
char b = 128;
printf("%d\n", a); /* -1 */
printf("%d\n", b); /* -128 */
Run Code Online (Sandbox Code Playgroud)
所以它从下往上开始计算.但为什么编译器没有给我一个警告?为什么会这样,当我尝试分配256?
使用CakePHP和Java Web Start我在控制器中生成必要的.jnlp文件,其中我将文件名设置为标题字段.只要我不试图在文件名中使用特殊字符,这样就可以正常工作.但是,我想在主操作系统上启用每个字符作为文件名.所以我尝试做的是通过空字符串替换它们来删除所有无效字符.但是文件名中应该允许的空格似乎存在问题.
那是代码:
$panel_id = 1
$panelname = 'w h i t e s p a c e s';
$filename = sprintf('"Project_%d_%s.jnlp"', $panel_id, $panelname);
$invalid_chars = array('<', '>', '?', '"', ':', '|', '\\', '/', '*', '&');
$filename = str_replace($invalid_filenamechars, '', $filename);
$this->header('Content-Disposition: attachment; filename=' . $filename);
Run Code Online (Sandbox Code Playgroud)
当我这样做时,标题中生成的文件名是"Project_1_w hitespac e",而Windows 7希望将文件保存为"Project_1_w".所以我的操作系统似乎不接受文件名中未转义的空格?如果不是以下内容,我会对这个解释感到满意:我留下第4行和第5行,以便代码看起来如此
$panel_id = 1
$panelname = 'w h i t e s p a c e s';
$filename = sprintf('"Project_%d_%s.jnlp"', $panel_id, $panelname);
$this->header('Content-Disposition: attachment; filename=' . $filename);
Run Code Online (Sandbox Code Playgroud)
现在Windows愿意用它的所有空格保存文件,但我仍然不明白为什么.如果我使用wireshark查看标题中的文件名,两者都是相同的.并且如果sprintf-line被替换为$filename = …
我正在计划一个新的Django项目,并希望得到一切正确和东西.我偶然发现了如何组织项目目录布局的问题.幸运的是,网上有很多好的项目模板示例.尽管如此,有一件事我很难想到:
建议将模板文件放入项目根目录下的单独目录中,该目录由应用程序划分为子目录.因此,模板不在应用程序目录中.这似乎是合理的,因为我们想要将应用程序逻辑与表示逻辑分开.但静态文件怎么样?在这里,通常的做法似乎是在app dirs中定位静态文件,并在开发时将它们加载到项目根目录下的"静态"目录中(collectstatic).这个逻辑我不明白.由于静态文件(即js,css,images)通常在模板内访问,而不是在应用程序代码中访问,因此我将它们计为表示逻辑.那么为什么它们不像模板一样存储 - 项目根目录下的目录,单个应用程序的子目录?
我知道我可以将这些文件存储在任何我想要的地方,但我想人们可能有这么好的理由这样做.这可能是什么原因?
我正在使用Python/Django开发一个wiki,部分用于教育目的.到目前为止,我仍然缺少正确的标记语言.我尝试了很多观点,包括Creole和Markdown,除了桌面支持外,它运作良好.常见的wiki标记语言似乎只支持基本表,即每个单元格单行或单元格内没有复杂标记.但是我的wiki用户希望能够在单元格中创建具有更大格式文本和列表的表格.我遇到了找到实际上可以做到这一点的标记语言的问题.
我注意到MediaWiki标记语言似乎支持所有内容,但我认为使用它会有点矫枉过正.标记的其余部分可以非常简单,重点放在标记的易写性上(我发现MediaWiki标记有时候有些丑陋).此外,必须有一个Python模块,用于将标记转换为HTML,我可以在webapp中使用它.我还在为MediaWiki标记寻找一个.
另一种选择是转储wiki标记语言,而是允许一组定义的HTML标记用于标记.但这使得编写维基文章变得更加困难,因为HTML不是为此类用途而发明的.并且查找和转发禁止的HTML可能非常棘手.我宁愿使用一个很好的标记语言和轻量级的Python实现.
有没有人知道扩展表支持的标记语言和我可以使用的Python实现?
提前致谢!
我正在学习pf安装在Macbook(OS X Mountain Lion)上的数据包过滤器.
我无法理解的一件事是锚点,或者更具体地说,关于锚点的某些特征.你可以用以下形式编写锚点anchor "foo/*".请注意锚名称末尾的星号.我的问题是:这是做什么的?
这就是文档(http://www.openbsd.org/faq/pf/anchors.html)关于这个主题的内容:
由于锚可以嵌套,因此可以指定评估指定锚中的所有子锚:
Run Code Online (Sandbox Code Playgroud)anchor "spam/*"此语法会导致评估附加到垃圾邮件锚点的每个锚点中的每个规则.子锚将按字母顺序进行评估,但不会递归递归.始终相对于定义它们的锚点来评估锚点.
当我读到这个时,它意味着这个锚定义被spam按字母顺序替换为所有子锚.所以,如果spam/foo1和spam/foo2会存在,anchor "spam/*"将被替换anchor "spam/foo1"和anchor "spam/foo2".spam锚点内的其他规则将被忽略.但是看看默认的OS X配置我一定是错的:
$ pfctl -sr
scrub-anchor "com.apple/*" all fragment reassemble
anchor "com.apple/*" all
$ pfctl -a com.apple -sr
anchor "100.InternetSharing/*" all
anchor "200.AirDrop/*" all
anchor "250.ApplicationFirewall/*" all
anchor "300.NetworkLinkConditioner/*" all
Run Code Online (Sandbox Code Playgroud)
所以,根据我的理解,输出pfctl -sr也可以是:
$ pfctl -sr
scrub-anchor "com.apple/*" all fragment reassemble
anchor "100.InternetSharing/*" all
anchor …Run Code Online (Sandbox Code Playgroud)