树莓派搭建web服务器
第一步:准备工作与虚拟环境
首先,确保你的树莓派系统(Raspberry Pi OS)是最新的,然后安装必要的软件包。
为什么需要虚拟环境? 虚拟环境(venv)就像一个独立的、干净的“小房间”,它把你的项目所需的所有 Python 库都隔离在里面。这样做的好处是:
-
避免冲突:不同的项目可能需要同一个库的不同版本,虚拟环境可以防止版本冲突。
-
保持系统整洁:它不会把库安装到你的系统全局目录,让你的树莓派系统保持干净。
-
方便管理:你可以轻松地分享、备份或迁移你的项目,只需要复制虚拟环境和代码即可。
具体操作:
-
更新系统:
Bashsudo apt update sudo apt upgrade -y
-
创建项目目录:
Bashmkdir my_web_app cd my_web_app
-
创建并激活虚拟环境:
Bashpython3 -m venv venv # 创建名为 venv 的虚拟环境 source venv/bin/activate # 激活虚拟环境
激活后,你的命令行提示符会多一个
(venv)
,表示你已进入虚拟环境。
第二步:安装 Flask 和编写代码
现在,你可以在虚拟环境里安装 Flask 库了。
-
安装 Flask:
Bashpip install Flask
-
编写你的第一个 Flask 应用: 在
my_web_app
目录中创建一个名为app.py
的文件,并写入以下代码:Pythonfrom flask import Flask app = Flask(__name__) @app.route('/') def home(): return 'Hello from Raspberry Pi Web Server!' if __name__ == '__main__': app.run(debug=True, host='0.0.0.0')
-
app.run(host='0.0.0.0')
这一行非常重要。host='0.0.0.0'
让你的服务器可以从树莓派的外部被访问。如果你不写这一行,服务器默认只在本地127.0.0.1
运行,其他设备无法访问。 -
debug=True
在开发阶段很有用,当你的代码有改动时,服务器会自动重启。
-
第三步:运行 Flask 应用
在虚拟环境激活的状态下,运行你的应用。
python app.py
现在,你的树莓派 Web 服务器已经运行起来了!
如何访问? 在你的电脑或手机上,打开浏览器,输入树莓派的 IP 地址加上端口号 5000
。
-
首先,你需要知道树莓派的 IP 地址,可以在树莓派上运行
hostname -I
或ifconfig
命令来获取。 -
假设你的 IP 地址是
192.168.1.100
,那么在浏览器中输入:http://192.168.1.100:5000
。 -
如果一切顺利,你就会看到 “Hello from Raspberry Pi Web Server!” 的文本。
扩展和生产环境建议
虽然上面的方法可以让你快速启动一个服务器,但在实际生产环境中,你通常不应该直接使用 app.run()
。这只是一个开发服务器,性能和安全性都有限。
更健壮的部署方式是使用一个专业的 WSGI 服务器,比如 Gunicorn,并通过 Nginx 作为反向代理来管理流量。
-
安装 Gunicorn:
Bashpip install gunicorn
-
用 Gunicorn 运行应用:
Bashgunicorn --bind 0.0.0.0:8000 app:app
-
--bind 0.0.0.0:8000
指定监听所有 IP 地址的8000
端口。 -
app:app
的第一个app
是你的文件名(app.py
),第二个app
是你在app.py
中创建的 Flask 应用实例变量名。
-
通过这些步骤,你就可以在树莓派上搭建一个稳定、可访问的 Web 服务器了。