2016-05-14 175 views
-1

当按下html按钮时,我使用flask来运行我的python代码。我的Python代码需要一个编码的图像,并通过解码返回编码的文本。现在我想要的是当按下html按钮时,页面运行python代码并显示解码文本,但是当按下html按钮时,网页只显示代码在我的py文件中,但没有运行它。执行python代码的HTML按钮

这是蟒蛇 “new.py” 代码:

from flask import Flask 

import os 

import subprocess 

app = Flask(__name__) 

@app.route("/stop/") 

def test(): 

    os.system('Python CN_Project.py') 

if __name__ == "__main__": 

    app.run(debug=True) 

我在网络ANS蟒蛇初学者。请帮帮我。

+0

其一,Python的在'使用os.system()'是大写的。这不起作用。二,烧瓶有一个响应对象,它将内容返回给浏览器,并且在这里你没有响应对象,就是那个系统命令。三,这里没有按钮。所以,这意味着您使用的不是Flask开发服务器的Web服务器。你是否与Apache整合?你在使用mod_wsgi吗?提交请求并处理响应的HTML页面在哪里? – Keozon

+0

我做了一个简单的html页面,它是: 测试 stop

+0

这是行不通的。你不能只指向Python解释器本身(它是小写的'python'而不是'Python',并且如果你在windows上它以.exe结尾,它看起来像你指向一个文件夹,在这里,不是甚至一个程序,为什么不按照烧瓶网站上的快速入门指南呢?Flask带有一个开发服务器,在那里你可以使烧瓶服务于你的HTML按钮页面,而不是一个本地文件。 – Keozon

回答

0

您是否试过通过Flask tutorial还没有得到一些简单的工作?

template,您可以创建一个链接到一个Python函数:

<a href="{{ url_for('login') }}">log in</a>

此致会是什么样子:

<a href="{{ url_for('test') }}" class="btn btn-info" role="button">stop</a>

,然后在view,new.py ,将你的python文件作为模块导入,并在那里调用解码图像并返回文本的函数。

from flask import Flask 
from CN_Project import decode_text_from_image 
... 

@app.route("/stop/") 
def test(): 
    output_text = decode_text_from_image('hardcoded_image.jpg') 
    return render_template('my_page.html', text_to_render=output_text) 
... 

然后要呈现在你的HTML template输出文本:

<p>{{ text_to_render }}</p>

现在,工作在刚使用硬编码到你的Python功能的图像。之后,您可以处理传递图像,也许通过文件选择器。

参考文献:

Flask tutorial

Flask templates

Flask view functions

+0

我从解码转移到简单的网页上打印你好世界实现你所说的所有上面但当我按下html按钮它说你的文件没有找到。 –

+0

如果您正在调用一个将文件路径作为参数的函数,那么可能是由于您的问题(例如,如果您对具有错误路径的文件进行了硬编码)。 通常,如果您收到错误消息,请在堆栈溢出中搜索以缩小问题范围。另外,听起来你应该首先做Flask教程来获取基础知识。 – ariannedee