我开发了一个 HTML 网页,其数据由通过 Flask 提供的 Python 代码提供。我正在尝试使用 win32service 包在 Windows 中将此烧瓶代码作为服务运行。(在 Python3.6 上编码)当我通过命令在 cmd 上运行 Flask 代码时:python tryflask.py debug,它显示在 IP 上运行的页面以及端口号等(运行在http://0.0.0.0 :5000 )。但是网页上没有显示任何内容。我收到错误:404 未找到。我哪里错了?另外,我认为它没有在烧瓶代码中输入“def slides()”函数。
下面是烧瓶程序。
import flask
from flask import Flask, render_template, redirect
from extract import *
import sys
from flask import request
import win32serviceutil
import win32service
import win32event
import servicemanager
import socket
app = Flask(__name__)
@app.route('/slideshow')
def slides():
print ("Hello") //Not getting printed
ext_obj=extract_news()
hntop = ext_obj.hntop()
br=ext_obj.breaking()
ext_tweet= ext_obj.extract_tweet()
tweet1=ext_obj.tweet1()
tweet2=ext_obj.tweet2()
return render_template('exampleslide.html', hntop=hntop, br=br, tweet1=tweet1, tweet2=tweet2, )
@app.route('/newspage', methods = ['GET','POST'])
def loadhome():
if request.method == 'POST':
ext_obj=extract_news()
hn=ext_obj.hacker_news()
tp=ext_obj.hacker_news()
return render_template('home.html',tp=tp,hn=hn)
def start_flask():
print("Starting flask") //Printing
app.run('0.0.0.0',port=5000)
class AppServerSvc (win32serviceutil.ServiceFramework):
_svc_name_ = "newsslides"
_svc_display_name_ = "newsslides"
def __init__(self,args):
win32serviceutil.ServiceFramework.__init__(self,args)
self.hWaitStop = win32event.CreateEvent(None,0,0,None)
socket.setdefaulttimeout(6000)
def SvcStop(self):
self.ReportServiceStatus(win32service.SERVICE_STOP_PENDING)
win32event.SetEvent(self.hWaitStop)
def SvcDoRun(self):
servicemanager.LogMsg(servicemanager.EVENTLOG_INFORMATION_TYPE,
servicemanager.PYS_SERVICE_STARTED,
(self._svc_name_,''))
self.ReportServiceStatus(win32service.SERVICE_RUNNING)
print ("Starting service") //Printing
start_flask()
if __name__ == '__main__':
win32serviceutil.HandleCommandLine(AppServerSvc)
任何帮助深表感谢!提前致谢!
在运行 Windows 服务时,DoRun 函数永远不会返回,否则服务将基本上停止。将此添加到 start_flask 方法的底部:
while True:
time.sleep(30)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句