默认情况下,使用内置服务器(Flask.run
)运行Flask应用程序时,它会监视其Python文件,并在代码更改时自动重新加载应用程序:
* Detected change in '/home/xion/hello-world/app.py', reloading
* Restarting with reloader
Run Code Online (Sandbox Code Playgroud)
不幸的是,这似乎仅适用于*.py文件,我似乎没有找到任何方法将此功能扩展到其他文件.最值得注意的是,当模板更改时让Flask重新启动应用程序非常有用.我已经不知道有多少次我在模板中摆弄标记并且因为没有看到任何变化而感到困惑,只是发现应用程序仍在使用旧版本的Jinja模板.
那么,有没有办法让Flask监控文件存在于模板目录中,还是需要深入到框架的源代码?
编辑:我正在使用Ubuntu 10.10.没有在任何其他平台上尝试过.
在进一步查询之后,我发现模板中的更改确实会实时更新,而无需重新加载应用程序本身.但是,这似乎只适用于传递给的那些模板flask.render_template
.
但实际上,在我的应用程序中,我有很多可重复使用的参数化组件,我在Jinja模板中使用它们.它们被实现为{% macro %}
s,驻留在专用的"模块"中并被{% import %}
编入实际页面.所有不错和DRY ...除了那些导入的模板显然从未检查过修改,因为它们根本没有通过render_template
.
(奇怪的是,对于通过调用的模板,这不会发生{% extends %}
.至于{% include %}
,我不知道,因为我没有真正使用它们.)
总而言之,这种现象的根源似乎介于Jinja和Flask或Werkzeug之间.我想这可能需要为这些项目之一的bug追踪者旅行:)同时,我接受了jd.的回答是因为这是我实际使用的解决方案 - 而且它就像一个魅力.
我在git上发出pull请求(带有"xcodeproj/project.pbxproj"文件 - 我的错),所以我可以从创建的Pull Request中删除这个文件吗?谢谢..
我有一个结账表格,会显示一个弹出式调查,询问为什么他们在5秒后没有开始填写表格.但是,我需要能够检查用户是否实际输入了数据而不是浏览器的自动填充功能输入的数据(我在javascript或jQuery中明确忽略的标记中的任何预先填充的数据集).
现在我的解决方案是让setTimeout运行一个函数来检查在输入类型(input,select,textarea)上的jQuery .focus或.change事件上设置为false的变量(true或false).但是,由于javascript可能会在用户能够使用表单元素后加载,因此我必须检查用户是否在调查弹出之前输入了数据.
如果在用户对表单字段做了什么之后加载javascript,是否可以区分用户输入的数据和浏览器输入的数据?
我对Haskell比较陌生.我写了一个卡片游戏uno的克隆,我想要一张漂亮的卡片输出.我做
import System.Console.ANSI
Run Code Online (Sandbox Code Playgroud)
提供
data Color = Black
| Red
| Green
| Yellow
| Blue
| Magenta
| Cyan
| White
deriving (Bounded, Enum, Show)
Run Code Online (Sandbox Code Playgroud)
现在我想添加deriving(Ord,Eq),我可以在导入包的源文件中写这个,但应该有一个更简单的方法来做到这一点.我不清楚在谷歌中搜索或查找哪些关键词.
我希望每个用户都使用唯一的电子邮件地址进行注册。然而,像 GMail 这样的一些电子邮件地址允许您添加一个 + 后缀,该后缀可用于将多个帐户注册到一个网站,但它全部转到一个电子邮件地址,例如
实际上,他们可以拥有任意数量的电子邮件地址。这是一个问题,因为我的网站将其视为 5 个独立的电子邮件地址,但 gmail 将其视为一个电子邮件地址。
我想阻止任何带有“+”的电子邮件地址,但我不想阻止任何有效的电子邮件地址。什么是标准做法?
我在Python 3中有一小段代码 -
'{:08b}' .format(i)
Run Code Online (Sandbox Code Playgroud)
这在Python 2.x中出错.有谁知道相同的?
有什么区别
while(condition){
var variable;
...
}
Run Code Online (Sandbox Code Playgroud)
和
while(condition){(function(){
var variable;
...
})();}
Run Code Online (Sandbox Code Playgroud)
有人可以解释我的干涉吗?
var names = [name for(name in generateNames(product))];
Run Code Online (Sandbox Code Playgroud)
generateNames
只返回产品中各种属性的列名数组.
但事物中名字的全名是什么?