新猿0基础python教程 uwsgi启动Python的Web项目中不要使用全局变量

本文介绍了如何使用uwsgi部署Python的Django或Flask项目,并强调了在多进程环境下,全局变量可能导致数据隔离问题。通过一个简单的Flask程序示例和uwsgi配置文件,展示了当uwsgi使用多个进程时,同一全局变量在不同进程中不会共享,从而可能导致数据不一致。建议避免在web项目中使用全局变量以确保正确性。

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

# 一 使用uwsgi部署python的web项目

```python

一般在部署Django或者Flask时,我们为了利用多核优势,一般使用uwsgi部署,原理如下

如果我们设定uwsgi进程数为3,那么操作系统是开启3个进程来运行python的web程序

如果我们在web项目中使用全局变量,由于多进程间数据是隔离的,所以定义的全局变量,分别在3个进程中

```

# 二 测试

## 2.1 写一个flask程序(s1.py)

```python

from flask import Flask

import time

app = Flask(__name__)

count = 0

@app.route('/')

def hello_world():

    global count

    count+=1

    return 'Hello World!'+str(count)

if __name__ == '__main__':

    app.run(host='0.0.0.0')

```

## 2.2 编写uwsgi的配置文件 (uwsgi.ini)

```python

[uwsgi]

http = 0.0.0.0:5000

chdir = /root/

wsgi-file = /root/s1.py

processes = 1

threads = 2

buffer-size = 32768

master = true

pidfile = uwsgi.pid

daemonize = uwsgi

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值