将flask应用注册为windows服务

将flask应用注册为windows服务

前言

首先python应用注册为windows服务一般都要使用pywin32包,然后我在网上搜索了好多方法,试图将flask注册为服务,但是都以失败告终。

最终在一篇文章中得知,flask内置的方法Flask.run不适合当服务器,flask的文档中也说了,Flask应用对象实质上是一个WSGI应用,所以必须得有一个WSGI服务器,我选了一个简单的独立WSGI容器gevent,总体来说比较简单,下面是具体操作内容。

步骤

安装依赖

三个依赖:

  • flask
  • gevent,作为WSGI服务器
  • pywin32,python用的windows接口

至于哪个版本,我直接安装的最新版,如果有问题再说。

pip install flask gevent pywin32

使用pywin32编写服务

一个简单的测试flask应用
# app.py文件
from flask import Flask

app = Flask(__name__)


@app.route('/')
def hello():
    return 'hello world'
flask gevent服务模板

根据自己的需求更改变量名,需要更改的地方我都加了中文注释

# server.py文件
import win32serviceutil
from gevent.pywsgi import WSGIServer

from app import app


class Service(win32serviceutil.ServiceFramework):
    # 服务名
    _svc_name_ = "flask_gevent_service_test"
    # 显示服务名
    _svc_display_name_ = "flask gevent service test display name"
    # 描述
    _svc_description_ = "flask gevent service test description"

    def __init__(self, *args):
        super().__init__(*args)
        # host和ip绑定
        self.http_server = WSGIServer(('127.0.0.1', 9854), app)
        self.SvcStop = self.http_server.stop
        self.SvcDoRun = self.http_server.serve_forever


if __name__ == '__main__':
    win32serviceutil.HandleCommandLine(Service)

添加环境变量

三个环境变量:

  • C:\Users\username\AppData\Local\Programs\Python\Python310
  • C:\Users\username\AppData\Local\Programs\Python\Python310\Scripts
  • C:\Users\username\AppData\Local\Programs\Python\Python310\Lib\site-packages\pywin32_system32

!!!注意两点!!!

  • 注意环境变量要加在系统环境变量的Path中,不要加在用户的环境变量中!
  • 上面是我的安装环境,需要根据自己python的安装路径更改环境变量,不要直接复制上去!

安装和使用

# 安装服务命令
python server.py install
# 更新服务
python server.py update

上面两个常用的就行,其他的我贴在下面

Usage: 'service.py [options] install|update|remove|start [...]|stop|restart [...]|debug [...]'
Options for 'install' and 'update' commands only:
 --username domain\username : The Username the service is to run under
 --password password : The password for the username
 --startup [manual|auto|disabled|delayed] : How the service starts, default = manual
 --interactive : Allow the service to interact with the desktop.
 --perfmonini file: .ini file to use for registering performance monitor data
 --perfmondll file: .dll file to use when querying the service for
   performance data, default = perfmondata.dll
Options for 'start' and 'stop' commands only:
 --wait seconds: Wait for the service to actually start or stop.
                 If you specify --wait with the 'stop' option, the service
                 and all dependent services will be stopped, each waiting
                 the specified period.

然后在系统服务中找到它,看需求设置启动方式,要想开机自启选自动就行

在系统服务中设置相关参数

先启动一下,打开浏览器测试

浏览器打开链接

不错

如有问题,欢迎交流!

### 回答1: 要将Flask部署到Windows服务器,您可以按照以下步骤操作: 1. 安装Python:在Windows服务器上安装Python,并确保已将其添加到系统路径中。 2. 安装Flask:使用pip安装Flask,可以在命令提示符下运行以下命令:pip install Flask 3. 编写Flask应用程序:编写Flask应用程序并保存为.py文件。 4. 配置服务器:在服务器上创建一个虚拟环境,并在其中安装必要的依赖项。 5. 运行应用程序:使用命令提示符或PowerShell运行Flask应用程序。 6. 配置Web服务器:使用IIS或Apache等Web服务器配置Flask应用程序。 以上是大致的步骤,具体操作可以参考相关文档或教程。 ### 回答2: Flask是一个轻量级的Web框架,适合小型的web应用,与Windows服务器的安装和配置相比,Flask的部署相对较简单。 Flask部署到Windows服务器的流程具体分为以下几步: 1. 安装Python、pip和virtualenv PythonFlask的主要框架,安装Python是第一步。接着要安装pip和virtualenv。pip是Python包管理器,用于在Python中安装或卸载包。virtualenv是虚拟环境,将Python和其所需的库隔离,在每个项目中使用不同的Python版本或不同的依赖关系变得容易。 2. 创建虚拟环境 使用virtualenv,可以为Flask应用程序创建一个虚拟环境。创建虚拟环境后,你可以在其中安装所需的Python包,而不会影响到服务器上的其他应用程序。 3. 安装和配置Flask应用程序 Flask应用程序需要在Windows服务器安装上运行,可以在虚拟环境中使用pip安装Flask和所需的其他包。安装完成后,需要在应用程序中配置Flask参数,比如运行环境,调试模式等。 4. 部署Flask应用程序 最后一步是将Flask应用程序部署到Windows服务器上。你可以使用命令行界面或web应用服务器,例如uWSGI或Gunicorn来部署应用程序。无论哪种方式,都需要在服务器上进行配置,并确保访问端口、日志记录等设置正确。 总之,在将Flask部署到Windows服务器之前,需要进行一些准备工作,例如安装Python、pip和virtualenv,并在虚拟环境中安装Flask和其他依赖项。然后,需要配置Flask应用程序并将其部署到Windows服务器上。如果您需要更多关于FlaskWindows中部署的指导,请参阅Flask文档或搜索相关资源。 ### 回答3: Flask是一种基于Python语言的轻量级Web应用框架。 在将Flask应用程序部署到Windows服务器上之前,需要先确保服务器上已经安装了Python环境和pip,而且Flask库也已经安装成功。 以下是将Flask部署到Windows服务器的步骤: 1. 在服务器上安装Python环境和pip 首先在服务器上安装Python环境,并且确保pip已经安装成功。在Windows上,可以使用Microsoft Installer(.msi)文件安装Python,或者直接在Python官网下载安装程序。安装完成后,将Python和pip加入到系统的环境变量中。 2. 安装Flask库 在命令行中使用pip安装Flask库: pip install Flask 安装完成后,可使用下面代码检查Flask是否成功安装: import flask 3. 编写Flask应用程序 编写Flask应用程序,并将它保存为.py文件。在Flask应用中,需要包含以下代码: from flask import Flask app = Flask(__name__) @app.route('/') def hello(): return 'Hello, World!' if __name__ == '__main__': app.run() 4. 运行Flask应用程序 在命令行中进入待运行的.py文件所在目录,运行Flask应用程序的命令为: python 文件名.py 将会得到如下提示: * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit) 此时,在浏览器中输入http://127.0.0.1:5000/,可以看到相应的页面。 5. 部署Flask应用程序 要将Flask应用程序部署到Windows服务器中,可以使用WSGI服务器(例如uWSGI和Gunicorn)。 使用pip安装uWSGI: pip install uwsgi 运行uWSGI服务器并指定Flask应用程序和端口: uwsgi --http :5000 --wsgi-file 文件名.py 6. 使用web服务器配置文件 可以使用web服务器(例如Apache或Nginx)的配置文件来配置Flask应用程序而不是直接使用uWSGI。使用web服务器有一些优点,如: - 可以使用HTTPS来加密传输数据 - 可以启用负载平衡器,提高请求处理效率和吞吐量 - 可以更好地管理和监视应用程序 需要使用mod_wsgi模块和Apache进行配置,或使用Nginx和uWSGI进行配置。 在Apache中使用mod_wsgi模块配置Flask,需要在httpd.conf文件中添加如下代码: <VirtualHost *:80> ServerName example.com WSGIScriptAlias / /var/www/yourapp/yourapp.wsgi <Directory /var/www/yourapp> Require all granted </Directory> </VirtualHost> 7. 完成部署 完成以上步骤后,即可将Flask应用程序部署到Windows服务器,并在浏览器中访问应用程序。同时,使用web服务器的配置文件可以实现更好的管理和监视。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值