Python 使用Flask将脚本输出打印到网页
为什么此脚本不将输出打印到网页?Python 使用Flask将脚本输出打印到网页,python,windows,python-2.7,flask,wmi,Python,Windows,Python 2.7,Flask,Wmi,为什么此脚本不将输出打印到网页? 它给了我: *正在运行(按CTRL+C退出) 消息,但没有打印到网页 from flask import Flask app = Flask(__name__) import wmi ip=['server1','server2','server3','server4','server5'] user="username" password="password" append_services=[] words = 'win32' @app.rout
它给了我: *正在运行(按CTRL+C退出) 消息,但没有打印到网页
from flask import Flask
app = Flask(__name__)
import wmi
ip=['server1','server2','server3','server4','server5']
user="username"
password="password"
append_services=[]
words = 'win32'
@app.route("/")
def service_status():
for a in ip:
global append_services
print ('\n'+a+'\n')
c = wmi.WMI (a,user=user,password=password)
get_names= c.Win32_Service()
for y in get_names:
convert = str(y.Name)
append_services.append(convert)
append_services=[w for w in append_services if w.startswith(words)]
for l in append_services:
state_of_services = c.Win32_Service(Name=l)
if state_of_services:
for x in state_of_services:
convert1 = str(x.State)
convert2 = str(x.Caption)
print convert1," ",convert2
if __name__ == "__main__":
app.run()
您需要在一个变量中获得所有结果,生成html,然后返回,以便用户可以看到它。让我们试试:
from flask import Flask
import wmi
app = Flask(__name__)
ip = ['server1', 'server2', 'server3', 'server4', 'server5']
user = "username"
password = "password"
append_services = []
words = 'win32'
@app.route("/")
def service_status():
results = [] # Temp for result to return to html
for a in ip:
global append_services
print('\n'+a+'\n')
c = wmi.WMI(a, user=user, password=password)
get_names = c.Win32_Service()
for y in get_names:
convert = str(y.Name)
append_services.append(convert)
append_services = \
[w for w in append_services if w.startswith(words)]
for l in append_services:
state_of_services = c.Win32_Service(Name=l)
if state_of_services:
for x in state_of_services:
convert1 = str(x.State)
convert2 = str(x.Caption)
results.append([a, [convert1, convert2]]) # Append results
print(convert1 + " " + convert2)
# This part for generate HTML for return
html = ''
for i in results:
html += '<h2>Ip: ' + i[0] + '</br>'
html += '<h3>From ' + i[1][0] + ' to ' + i[1][1]
return html
if __name__ == "__main__":
app.run()
从烧瓶导入烧瓶
导入wmi
app=烧瓶(名称)
ip=['server1','server2','server3','server4','server5']
user=“username”
password=“password”
附加服务=[]
words='win32'
@附件路线(“/”)
def服务_状态():
结果=[]#返回html的结果的临时值
对于ip中的应用程序:
全球附加服务
打印('\n'+a+'\n')
c=wmi.wmi(a,用户=用户,密码=密码)
get_names=c.Win32_服务()
对于get_名称中的y:
convert=str(y.Name)
append\u services.append(转换)
附加服务=\
[w表示附加服务中的w,如果w.startswith(文字)]
对于附加服务中的l:
服务的状态=c.Win32服务(名称=l)
如果服务状态为:
对于处于服务状态的x:
convert1=str(x.State)
convert2=str(x.Caption)
results.append([a[convert1,convert2]])#append results
打印(convert1+“”+convert2)
#此部分用于生成用于返回的HTML
html=“”
对于结果中的i:
html++='Ip:'+i[0]+''
html+='从'+i[1][0]+'到'+i[1][1]
返回html
如果名称=“\uuuuu main\uuuuuuuu”:
app.run()
如果您使用打印
它将在控制台上打印。如果要在html上打印以供用户查看,是否可以尝试将其返回(而不是打印,我从不使用此设置)或将其传递到渲染模板,然后将其放入html中。返回在('\n'+a+'\n')上工作,该('\n'+a+'\n')打印服务器名称,但返回在'convert1',covert2'上不起作用,因为返回时,我想这个功能已经停止了。您需要将它们都保存在一个变量中,当您退出循环时,返回它们。如果可以,请尝试,否则我将尝试为您获取一个示例代码。在这种情况下,我对Flask不熟悉,所以不要期望太多。谢谢@app.route('/')def index():content=“”teste”“”user=“Hero”return render_template('index.html',**locals())我得到了一个IP,但当我转到url时,我得到了一个内部服务器错误。这对你有用吗?不管怎样,哪个url,我没有尝试过,我只是假设你的代码正在工作,并改变了它导出结果的方式。我将在接下来的24小时内测试并修复代码,希望你能很好地更新:我运行了你建议的脚本。这是一种工作方式,但输出到web是毫无意义的“IP:…”从N到OI我无法理解您的评论@@