使用树莓派运行 Web 规模的应用程序
编辑和重新部署
我的第一篇文章介绍了如何使用售价 35 美元的树莓派将应用程序部署到 Heroku。但部署并不是终点,而仅仅是开始。
首次部署后,您可能会发现错误或拼写错误,或者决定添加新功能或进行全面修改。在这种情况下,您需要一个流程将这些更改提交到 Heroku。
我的修改
这个 Python 测试应用程序的 Python 代码都是样板代码,对于本教程来说,修改起来并不方便。所以我们只修改应用程序的 HTML 模板中的一些内容,这样就能立即看到更改的效果。
我已经导航到 python-getting-started/hello/templates 目录,并双击了 base.html 和 index.html 文件。这些文件默认会在 Geany 编辑器中打开。
在 base.html 的第 4 行,我将标签的内容更改<title></title>为“Edited Python app for Heroku”。
在 index.html 的第 11 行,我将标签的内容更改<h1></h1>为“它奏效了!”——自信孕育能力!
流量
现在我将在终端中导航到应用程序的根目录。每次我进行更改并希望这些更改反映在 Heroku 托管的版本中时,我都会按以下顺序运行以下命令:
-
git add .这会将您的更改添加到本地仓库的索引中。(使用此git status命令可以查看索引中已包含的更改。所有已索引的内容都将通过下一个命令记录。) -
git commit这会将你的更改记录到本地仓库并提交。这将打开你在配置 Git 时指定的编辑器。我在下面使用 nano 编辑器来撰写我的提交信息。
-
git push heroku master这会将更新后的仓库交给 Heroku 进行部署。(是不是很眼熟?这和我们上一节中用于部署的命令一样。)执行完毕后,您就可以运行命令heroku open查看更改了。
锵锵!一个 Heroku 应用开发流程就此诞生。
附录:本地托管
要在本地托管您的应用程序,您需要先安装 Postgres 和一些标头。运行命令sudo apt install libpg-dev postgresql即可完成安装。之后,整个过程只需几分钟。我们先来设置一下:
步骤0:设置
首先,像往常一样,导航到应用程序的根目录。接下来,我们将围绕“getting starting”目录创建一个 Python 虚拟环境。运行python3 -m venv getting-started命令即可创建虚拟环境。对于您自己的应用程序,您需要在包含 WSGI 的目录中创建一个虚拟环境。
在继续操作之前,我们还应该确保 /home/user/.local/bin (其中userecho $PATH是您的用户名)已添加到 PATH 环境变量中。您可以通过执行以下命令检查 PATH 环境变量。您可以使用以下命令将目录添加到当前会话的 PATH 环境变量中export PATH=$PATH:/home/user/.local/bin,或者使用以下命令将其添加到所有会话的 PATH 环境变量中(这将重启您的树莓派)echo "PATH=$PATH:/home/user/.local/bin" >> /home/user/.profile && sudo systemctl reboot。
步骤 1:安装要求
接下来我们需要在本地安装所需的依赖项。首次运行此命令后,以及每次 requirements.txt 文件发生更改时,都需要运行此命令pip3 install -r requirements.txt。这将安装 requirements.txt 文件中列出的所有内容。
步骤二:创建数据库
下一条命令只需运行一次:sudo -u postgres createdb python_getting_started。对于您自己的应用,您需要将 `<database_name>` 替换为您应用迁移数据库的名称。如果您的应用使用了其他数据库,您可能还需要创建这些数据库。
步骤 3:迁移和静态收集
接下来,我们将把 Git 仓库迁移到上一步创建的数据库中;python3 manage.py migrate然后运行命令python3 manage.py collectstatic,将应用程序的静态元素收集到一个目录中,供 Web 服务器使用。manage.py 文件允许我们直接从命令行运行 Django 的核心管理功能。每次进行需要本地生效的更改时,都应该运行这些命令。
第四步:主持!
最后,我们运行命令heroku local,开始在本地端口 5000 上托管我们的应用程序。
打开浏览器访问 localhost:5000,你就能看到你的应用了!

我们可以看到上一节中所做的更改,但这次应用程序托管在 RPi 上。
结论
树莓派是一个优秀的Web开发平台,尤其是在物联网即将到来之际。想象一下满屋子的服务器机架,在树莓派上托管和开发Web应用程序,这提醒我们互联网真正属于每个人。如果连这副小小的“扑克牌”都能托管和部署强大的Web服务,那么任何人都可以创建自己的服务。
祝你好运,一路顺风!
文章来源:https://dev.to/heroku/run-a-web-scale-app-with-the-raspberry-pi-2c51本文由 JS Rana 合作撰写,没有她精湛的 Linux 技术,这篇文章根本无法完成。令人难以置信的是,她现在正在找工作!如果您需要一位 Python、Linux 或 Git 高手加入您的团队,请联系她。
她的邮箱是 jsrana@raydialow.xyz,
她的GitHub和博客地址是 [此处应填写 GitHub 地址]。





