多线程+flask+多个端口

本文分享了如何通过Python将三个Flask应用合并在一个.py文件中实现多线程,展示了基础代码并讨论了可能的优化方法及复杂应用潜在隐患。期待专家指导。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天想测试一下怎么通过一个.py文件写一段多线程代码,把原来的三个flask接口的py文件和成一个,在网上看了很多方法,但都没用上,最后测试时用了最简单的方法,代码如下:
from flask import Flask
import threading

import os
from werkzeug.serving import run_simple
from werkzeug.middleware.dispatcher import DispatcherMiddleware
# ----------服务1-----------------
app1 = Flask('app1')
@app1.route('/first/')
def foo():
    print('app1')
    return '1'



# ----------服务2-----------------
app2 = Flask('app2')
@app2.route('/second/')
def bar():
    print('app2')
    return 'hello world'


# ----------服务3-----------------
app3 = Flask('app3')
@app3.route('/third/')
def bar():
    print('app3')
    return 'it is the third one'


if __name__ == '__main__':
    # print('main thread is {}'.format(threading.current_thread().name))
    # os.environ 返回一个系统变量和系统变量值 的字典(键值对)
    os.environ["WERKZEUG_RUN_MAIN"] = 'True'
    threading.Thread(target=lambda: app1.run(port=5001, use_reloader=False)).start()
    threading.Thread(target=lambda: app2.run(port=5002, use_reloader=False)).start()
    threading.Thread(target=lambda: app3.run(port=5003, use_reloader=False)).start()

run之后输出的结果是:

 * Serving Flask app 'app1' (lazy loading)
 * Environment: production
   WARNING: This is a development server. Do not use it in a production deployment.
   Use a production WSGI server instead.
 * Debug mode: off
 * Serving Flask app 'app2' (lazy loading)
 * Serving Flask app 'app3' (lazy loading)
 * Environment: production
   WARNING: This is a development server. Do not use it in a production deployment.
   Use a production WSGI server instead.
 * Debug mode: off
 * Environment: production
   WARNING: This is a development server. Do not use it in a production deployment.
   Use a production WSGI server instead.
 * Debug mode: off
 * Running on http://127.0.0.1:5001 (Press CTRL+C to quit)
 * Running on http://127.0.0.1:5003 (Press CTRL+C to quit)
 * Running on http://127.0.0.1:5002 (Press CTRL+C to quit)

感觉没什么问题

我想知道,有什么优化的方法吗,如果每一个app的内容更加复杂,或者这样写会不会存在什么隐患,小白,期待大神指导!
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值