求大神怎么通过uwsgi运行python脚本?
脚本如下,如何通过网页获取到abc的值?:print('正在抽奖请稍后......')
import random
'''
where = ['蛋糕','面包','土豆']
target = random.choice(where)
print(target)
'''
#判断中奖函数
def lottery():
flag = random.randint(0,100)
if flag < 1:
return 1
elif flag < 2:
return 2
elif flag < 3:
return 3
else:
return 4
if __name__=='__main__':
#name = input('请输入您的微信昵称:')
for i in range(10000):
if (lottery()<=1):
abc = '恭喜中蛋糕'
elif (lottery()<=2):
abc= 'mianbao'
elif (lottery()<=3):
abc = 'tudou'
else:
abc = 'no'
print(abc)
首先,您需要安装uWSGI和Flask。打开终端,运行以下命令安装它们:
pip install uwsgi flask
接下来,创建一个名为 `app.py` 的文件,并将以下内容粘贴到文件中。此文件将成为Flask应用的入口点:
from flask import Flask
import random
app = Flask(__name__)
# 判断中奖函数
def lottery():
flag = random.randint(0, 100)
if flag < 1:
return 1
elif flag < 2:
return 2
elif flag < 3:
return 3
else:
return 4
@app.route('/lottery')
def run_lottery():
for i in range(10000):
if (lottery() <= 1):
abc = '恭喜中蛋糕'
elif (lottery() <= 2):
abc = 'mianbao'
elif (lottery() <= 3):
abc = 'tudou'
else:
abc = 'no'
return abc
if __name__ == '__main__':
app.run()
接下来,在同一个目录下创建一个名为 `uwsgi.ini` 的文件,用以下内容填充:
module = app:app
master = true
processes = 5
socket = app.sock
chmod-socket = 660
vacuum = true
die-on-term = true
现在,您可以运行以下命令启动uWSGI服务器:
uwsgi uwsgi.ini
然后,您可以使用Nginx或其他web服务器作为反向代理。这是一个简单的Nginx配置示例,假设您将项目放置在 `/path/to/your/project`:
location / {
include uwsgi_params;
uwsgi_pass unix:/path/to/your/project/app.sock;
}
现在,在浏览器中访问 `http://your_server_address/lottery`,您应该能够看到输出的中奖结果。注意,您需要根据实际情况修改Nginx配置文件中的路径。 isdkz 发表于 2023-4-28 13:28
首先,您需要安装uWSGI和Flask。打开终端,运行以下命令安装它们:
我试下 首先需要安装uwsgi:
pip install uwsgi
然后可以通过如下命令运行该脚本:
uwsgi --http :8000 --wsgi-file test.py
其中,--http 指定了监听的端口,:8000 表示监听8000端口,--wsgi-file 指定了要运行的脚本文件。
如果需要从网页获取abc的值,可以在脚本中添加一个简单的Web框架比如 Flask 或 Bottle,然后修改上面的命令为:
uwsgi --http :8000 --wsgi-file test.py --callable app
其中,app 是你的Flask或Bottle应用程序实例名称。之后,在你的应用程序中添加一个路由处理程序,如:
python
from flask import Flask
app = Flask(__name__)
@app.route('/')
def index():
return abc
这样,当访问 http://localhost:8000/ 时,就可以获取到abc的值了。 小邪 发表于 2023-4-28 13:32
我试下
您好,我输入uwsgi uwsgi.ini启动服务后,网页访问提示被拒绝,没有使用nginx 小邪 发表于 2023-4-28 13:43
您好,我输入uwsgi uwsgi.ini启动服务后,网页访问提示被拒绝,没有使用nginx
默认只能使用回环地址127.0.0.1连接。要让Flask应用程序绑定到所有可用地址,您需要将`app.run()`函数的`host`参数设置为`'0.0.0.0'`。这将允许来自任何IP地址的连接。
修改`app.py`文件中的`app.run()`行如下所示:
if __name__ == '__main__':
app.run(host='0.0.0.0')
现在,当您运行`python app.py`启动Flask开发服务器时,它将监听所有可用网络接口。
对于uWSGI,您可以在`uwsgi.ini`文件中将`http`选项设置为`0.0.0.0:8000`,以便在所有可用地址上运行:
http = 0.0.0.0:8000
http-timeout = 86400
现在,当您运行`uwsgi uwsgi.ini`启动uWSGI服务器时,它将监听所有可用网络接口。
请注意,将服务器绑定到所有地址可能会带来安全风险,因为任何人都可以尝试连接到您的应用程序。在生产环境中,建议使用防火墙或其他安全措施来保护您的应用程序。 isdkz 发表于 2023-4-28 13:50
默认只能使用回环地址127.0.0.1连接。要让Flask应用程序绑定到所有可用地址,您需要将`app.run()`函数的` ...
和用不用nginx没有关系是吧,可以不用nginx 小邪 发表于 2023-4-28 13:32
我试下
您好,大神在问您个问题,为什么我在脚本里添加了input获取用户的输入后打开网页会报错?是uwsgi不支持嘛?
页:
[1]