将flask应用注册为windows服务

将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应用


from flask import Flask

app = Flask(__name__)

@app.route('/')
def hello():
    return 'hello world'

flask gevent 服务模板

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


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)

        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.

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

将flask应用注册为windows服务

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

将flask应用注册为windows服务

不错

如有问题,欢迎交流!

Original: https://blog.csdn.net/qq_21076851/article/details/122884538
Author: i止于至善
Title: 将flask应用注册为windows服务

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/745715/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • Python函数/动态参数/关键字参数

    1.函数 #函数语法: #函数名规范:小谢字母开头,不同字母下划线隔开(字母数字下划线) #def 函数名(): #函数体:希望函数做的事情 1.1.无参函数 #无参函数 def …

    Python 2023年10月30日
    041
  • 一文理解Linux的基本指令(三分钟学会Linux基本指令)

    前沿: 本文小马将把Linux一般比较常见的指令给大家一一列举出来,为了大家忘记某些指令后,可以方便查询记忆,再次小马建议,Linux指令并不需要去特别花时间专门记忆,只需要多进行…

    Python 2023年9月30日
    052
  • 【测开面经】Python篇

    文章目录 Python的优点 Python基本数据类型 数组和列表的区别 列表、元组、集合与字典的区别 可变类型与不可变类型以及is与==的比较 参数 格式化字符串 生成器 * 生…

    Python 2023年8月15日
    076
  • 表弟打把王者的时间,我就用python写了个自动玩贪吃蛇的程序

    表弟最近放假了天天打王者,作业也不做,气得我差点想给他买三年高考五年模拟了… 算了,血压有点上升,不管他了,先写代码。 ; 实现效果 先看看效果 这比我手动的快多了,而…

    Python 2023年11月9日
    053
  • scrapy框架其他功能的使用

    目录: 1:piplines的使用 * 1.1:怎样使用piplines来保存爬虫返回的数据 1.2:步骤 1.3:多个管道的开启 2:items文件的讲解 * 2.1:items…

    Python 2023年10月6日
    042
  • flask + vue 前后端分离 — 环境搭建

    是一个Python的Web框架,可以用来 服务。 .js是一个JavaScript框架,可以用来 界面。在前后 的应用中, 可以负责处理后 业务逻辑和数据存储, .js则负责处理前…

    Python 2023年8月11日
    041
  • 集合方法及运算

    1.增加元素:方法add()。 set_val = {‘hello’,123,(1,2,3)}set_val.add(‘world’)print(set_val)​输出结果:{‘h…

    Python 2023年6月3日
    078
  • 二进制安装Docker

    写在前边 考虑到很多生产环境是内网,不允许外网访问的。恰好我司正是这种场景,写一篇二进制方式安装Docker的教程,用来帮助实施同事解决容器部署的第一个难关。 本文将以二进制安装方…

    Python 2023年10月17日
    074
  • 【PyHacker编写指南】打造URL批量采集器

    这节课是巡安似海PyHacker编写指南的《打造URL批量采集器》 喜欢用Python写脚本的小伙伴可以跟着一起写一写呀。 编写环境:Python2.x 00×1 : 需…

    Python 2023年5月24日
    084
  • 【HTML5】登录页面制作简易版

    刚开始学习Java。文件的命名,讲道理应该以英文为主,但是英语又不好,所以只好用拼音,最痛苦的应该算是那些英语又不好,又想秀一下的程序员,一半英语一半拼音,如mainFangFa~…

    Python 2023年9月15日
    060
  • 感知器算法解决xor函数

    from itertools import count import numpy import random #用到的库。 step_function = lambda x: 1 …

    Python 2023年8月27日
    041
  • web自动化测试入门篇01——框架介绍

    😏 作者简介:博主是一位测试管理者,同时也是一名对外企业兼职讲师。📡 主页地址:【Austin_zhai】🙆 目的与景愿:旨在于能帮助更多的测试行业人员提升软硬技能,分享行业相关最…

    Python 2023年8月1日
    062
  • ccc-数据科学库(HM)-day5

    一、pandas学习(接上次) 项目一:电影种类离散以及种类数量的图形绘制(分组) 原始数据展示:代码: import pandas as pd from matplotlib i…

    Python 2023年8月18日
    048
  • python数据可视化-matplotlib入门(2)-利用随机函数生成变化图形

    综合前述的类、函数、matplotlib等,完成一个随机移动的过程(注意要确定移动的次数,比如10万次),每次行走都完全是随机的,没有明确的方向,结果是由一系列随机决策确定的,最后…

    Python 2023年5月24日
    080
  • Pygame(六)动画起步1

    Pygame(六)动画起步1 前情提要 ; 作业示例 import pygame import sys def homework(): pygame.init() screen =…

    Python 2023年9月23日
    047
  • 基于文化算法优化的神经网络预测研究(Matlab代码实现)

    目录 1 文化优化算法 2 人工神经网络 3 基于文化算法优化的神经网络预测研究(Matlab代码实现)运行结果 4 参考文献 5 Matlab代码实现 1 文化优化算法 大自然里…

    Python 2023年9月26日
    049
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球