使用带Flask的同一页面的POST方法,使用POST的区域链接

2024-09-28 05:25:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我理解米格尔·格林伯格(Miguel Grinberg)这本书《烧瓶网络开发》中的例子,但我试图做一些有点奇怪的事情。我希望能够单击像这样的图像的“部分”->; http://www.w3schools.com/tags/tag_area.asp

不过,我希望它能打开一个SSH窗口来访问我网络中的特定节点。
我用一个单独的页面让它按照示例工作。如果我打开本地主机:5000/叶1这是完美的工作,但是我想从一个链接传递一个cgi-bin-POST命令,这样用户仍然在同一个页面上(它不会转到另一个页面…)。我有点卡住了。在

下面是python脚本启动烧瓶:

import subprocess
import logging
from logging.handlers import RotatingFileHandler
from flask import Flask, render_template, request, url_for
from flask.ext.script import Manager
from flask.ext.bootstrap import Bootstrap
from flask.ext.moment import Moment
from flask.ext.wtf import Form
from wtforms import StringField, SubmitField, HiddenField
from wtforms.validators import Required

app = Flask(__name__)
app.config['SECRET_KEY'] = 'hard to guess string'

manager = Manager(app)
bootstrap = Bootstrap(app)
moment = Moment(app)


class SwitchForm(Form):
    name = HiddenField('Switch being accessed', validators=[Required()])

@app.route("/leaf1")
def leaf1():
    cmd = ['DISPLAY=:03.0 xterm -e "ssh leaf1"']
    p = subprocess.Popen(cmd, stdout = subprocess.PIPE,
                            stderr=subprocess.PIPE,
                            stdin=subprocess.PIPE, shell=True)
    out,err = p.communicate()
    return out

@app.route('/', methods=['GET', 'POST'])
def index():
    leaf=None
    if request.method == 'POST':
        switch=request.form['leaf']
        if switch == '1':
            return ''' hello guy '''

    return render_template('index.html')


if __name__ == '__main__':
    handler = RotatingFileHandler('log.log', maxBytes=10000, backupCount=1)
    handler.setLevel(logging.INFO)
    app.logger.addHandler(handler)
    manager.run()

这是索引.html模板文件

^{pr2}$

Tags: namefromimportappflaskreturnifrequest

热门问题