我myapp.py是这样的:
from flask import Flask
from flask import request
from flask import render_template
app = Flask(__name__)
@app.route('/', methods=['GET', 'POST'])
def index():
if request.method == 'POST':
# do something
# for example:
message = 'I am from the POST method'
f = open('somefile.out', 'w')
print(message, f)
return render_template('test.html', out='Hello World!')
if __name__ == '__main__':
app.run()
Run Code Online (Sandbox Code Playgroud)
我有一个简单的问题.如何在Python index()中的if语句(8到13行)中调用函数并执行代码?
我试过这样的方式:
>>> import myapp
>>> myapp.index()
Run Code Online (Sandbox Code Playgroud)
但我收到的消息是:
RuntimeError: working outside of request context
Run Code Online (Sandbox Code Playgroud) 我是一个使用Flask框架的新手用户,我正在尝试实现以下问题.
我为用户提供了两个链接的网页:
<a href="{{ url_for('user', user_name=name, user_id=id) }}">Settings</a><a href="{{ url_for('user', user_name=name, user_id=id) }}">Details</a>在py文件中我想实现以下功能 - 一个路由,但两个行为取决于用户操作:
@app.route("/<user_name>/<int:user_id>")
def user(user_name, user_id):
# if user click on the "Settings" link then:
# ...
# some code
# ...
return render_template('user_settings.html', ...)
# if user click on the "Details" link then:
# ...
# some code
# ...
return render_template('user_details.html', ...)
Run Code Online (Sandbox Code Playgroud)
或者类似的东西 - 相同的路线,但两个不同的def:
# if user click on the "Settings" link then:
@app.route("/<user_name>/<int:user_id>")
def user_settings(user_name, user_id):
# …Run Code Online (Sandbox Code Playgroud) 我在Perl语言中有以下代码:
#!/usr/bin/perl
use strict;
use warnings;
use Data::Dumper;
my $DF = "/usr/bin/df -Pk"; # HP-UX
my @temp = split /\n/, `$DF`;
shift @temp;
print Dumper \@temp;
Run Code Online (Sandbox Code Playgroud)
输出如下(更短的可读性):
$VAR1 = [
'/dev/vg00/lvol6 114224 46304 67920 41% /home',
'/dev/vg00/lvol7 8340704 4336752 4003952 52% /opt',
'/dev/vg00/lvol4 520952 35080 485872 7% /tmp',
];
Run Code Online (Sandbox Code Playgroud)
我想将@temp数组(或创建一个新数组)转换为多维(数组数组),如下所示:
$VAR1 = [
['/dev/vg00/lvol6', 114224, 46304, 67920, '41%', '/home'],
['/dev/vg00/lvol7', 8340704, 4336752, 4003952, '52%', '/opt'],
['/dev/vg00/lvol4', 520952, 35080, 485872, '7%', '/tmp'],
];
Run Code Online (Sandbox Code Playgroud)
有人帮吗?提前致谢!:)
我注意到<td align="center">代码在MediaWiki.org页面和en.wikipedia.org页面上的工作方式不同.我在两个wiki上键入相同的以下测试代码:
来源(测试)代码:
<table border="1">
<tr>
<td align="center">
test test test test test test
test
<table border="1"><tr><td>
[[File:Information_icon.svg|20px]]
</td></tr></table>
test
</td></tr>
</table>
Run Code Online (Sandbox Code Playgroud)
为什么MediaWiki.org页面产生以下(错误)代码:
<td style="text-align: center;">
Run Code Online (Sandbox Code Playgroud)
相反(预期):
<td align="center">
Run Code Online (Sandbox Code Playgroud) 我知道这里有类似的问题,但他们没有帮助我.
在主py文件中我只是设置名为nowts如下的全局变量:
app.jinja_env.globals['nowts'] = datetime.datetime.now()
Run Code Online (Sandbox Code Playgroud)
在主(基础)模板(base.html文件)中,我只是传递和格式化datetime,如下所示:
{% block navbar %}
...
<p>{{ nowts.strftime('%A, %b %d %Y / %X') }}</p>
...
{% endblock %}
Run Code Online (Sandbox Code Playgroud)
例如,输出是:
Wednesday, Mar 26 2014 / 11:57:51
Run Code Online (Sandbox Code Playgroud)
如您所见,日期和时间正确显示,但只显示一次.几分钟后,我重新打开主页(或子页面),时间仍然相同.如果用户刷新页面,如何更新nowts全局变量?
我有一个多维(2D)@array.
我编写了以下代码来获取每个嵌套数组中的第一个元素:
use strict;
use warnings;
use Data::Dumper;
my @array = (
[ '/dev/vg00/lvol6', 114224, 46304, 67920, '41%', '/home' ],
[ '/dev/vg00/lvol7', 8340704, 4336752, 4003952, '52%', '/opt' ],
[ '/dev/vg00/lvol4', 520952, 35080, 485872, '7%', '/tmp' ],
);
my @new_array;
foreach (@array) {
push @new_array, @$_[0];
}
Run Code Online (Sandbox Code Playgroud)
是否有更好或更快的方法(例如,使用该map函数)生成一个新数组(嵌套数组中的每个第一个元素/值),具有以下值:
$VAR1 = [
'/dev/vg00/lvol6',
'/dev/vg00/lvol7',
'/dev/vg00/lvol4'
];
Run Code Online (Sandbox Code Playgroud)
PS.我很抱歉这个琐碎的问题,但是今天(星期一早上)我今天脑子里有一个很大的空白.
我正在尝试创建一个正则表达式,用于从字符串的开头到结尾提取所有字符串,除了字符串末尾的冒号(:).
字符串是:
ORA-06550: line 10, column 33:
ORA-20000: Schema "TEST" does not exist or insufficient privileges
PLS-00201: identifier 'A' must be declared:
Run Code Online (Sandbox Code Playgroud)
在Perl语言的一个正则表达式中,我想捕获以下字符串:
ORA-06550: line 10, column 33
ORA-20000: Schema "TEST" does not exist or insufficient privileges
PLS-00201: identifier 'A' must be declared
Run Code Online (Sandbox Code Playgroud)
到目前为止,我有以下正则表达式(见在线)::
/^(.*)(?::)?$/gm
Run Code Online (Sandbox Code Playgroud)
我的问题是如何构造一个正则表达式,将从第一个和第三个字符串中删除冒号并同时捕获所有第二个字符串.