小编Sco*_*tie的帖子

如何在Python中使用Flask应用程序调用某些函数?

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)

python flask

8
推荐指数
1
解决办法
7854
查看次数

我可以使用一种途径进行多种功能吗?

我是一个使用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)

python werkzeug jinja2 flask

6
推荐指数
1
解决办法
3951
查看次数

如何将简单(平面)数组转换为多维(2D)数组

我在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)

有人帮吗?提前致谢!:)

arrays perl multidimensional-array

3
推荐指数
1
解决办法
111
查看次数

对齐中心代码(错误的渲染输出?)在MediaWiki中不起作用

我注意到<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)

html mediawiki html-table

2
推荐指数
1
解决办法
1012
查看次数

如何在Jinja2中将时间戳更新为全局变量?

我知道这里有类似的问题,但他们没有帮助我.

在主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全局变量?

python datetime jinja2 flask

2
推荐指数
1
解决办法
1369
查看次数

如何从Perl中的多维数组中获取每个第一个元素?

我有一个多维(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.我很抱歉这个琐碎的问题,但是今天(星期一早上)我今天脑子里有一个很大的空白.

arrays perl multidimensional-array

2
推荐指数
1
解决办法
356
查看次数

不匹配字符串末尾的可选冒号与正则表达式

我正在尝试创建一个正则表达式,用于从字符串的开头到结尾提取所有字符串,除了字符串末尾的冒号(:).

字符串是:

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)

我的问题是如何构造一个正则表达式,将从第一个和第三个字符串中删除冒号并同时捕获所有第二个字符串.

regex perl

1
推荐指数
1
解决办法
456
查看次数