2

我正在使用 Raspberry Pi 创建我的第一个项目:http: //www.howtogeek.com/146410/how-to-automate-your-always-on-raspberry-pi-download-box/all/

考虑到有很多设置要做,我想知道是否有人可以给我一些指示和搜索词来组合一个类似于 CouchPotato 的 Web 应用程序,我可以让用户在一个向导中运行它来完成大部分设置. (即写入其他 Web 应用程序的设置文件。)

我想知道:

  • 如何安装要从 RPi 本地运行的 Web 应用程序,并使用自定义端口
  • 我需要什么工具?(例如框架、语言)
  • 如何创建一个漂亮的 Web 2.0 GUI(例如 CouchPotato Wizard ( image , repo ))

我在看 Django,还是卡布奇诺?我不知道从哪里开始。我需要能够在计算机上编辑设置文件

4

1 回答 1

4

安装 Python:您需要在 Rpi OS 上安装 Python。如果尚未安装,则该过程应取决于您使用的操作系统。我在谷歌搜索中找到了这个

要检查它是否已安装,请输入python终端。如果已安装,它应该启动交互式 python shell。

如果您要重新安装 python。完成后检查是否使用 python 安装了 pip。'which pip' 应该给你安装 pip 的路径。如果没有,sudo easy_install pip应该这样做。


安装Flask:Flask 是 python 的微框架。Django 很好,但对于你想做的事情可能有点过分了。Flask 易于学习(观点)和轻便。

一旦安装了 python 和相关的包管理器,您就可以运行sudo pip install Flasksudo easy_install Flask在 RPi 终端中运行。


示例 Flask 应用程序:这个简单的烧瓶表单应该可以帮助您入门。这将向您展示如何制作和提交表格。如何使用模板制作好看的页面。以及如何在任何端口上运行烧瓶应用程序。

目录结构将是这样的。

+AppDir
  |-myapp.py
  |+templates
    |-form.html

我的应用程序.py

from datetime import datetime
from flask import Flask
app = Flask(__name__)

@app.route('/writetofile' methods = ['GET', 'POST'])
def writetofile():
    if request.method == 'GET':
        now = str(datetime.now())
        data = {'name' : request.args['name'], 'date' : now, 'filled':False}
        return render_template('form.html', data=data)

    if request.method == 'POST':
        content = request.params['content']
        now = str(datetime.now())

        with open('samplefile.txt', 'w') as f:
            f.write(content)
        data = {'filled':True, 'file': 'samplefile.txt', 'date': now}
        return render_template('form.html', date=date)

if __name__ == '__main__':
    port = 8000 #the custom port you want
    app.run(host='0.0.0.0', port=port)

表单.html

<html><body>
<center>
  <h2>Form</h2>
  <p>Welcome, Current system DateTime is {{data.date}}.</p>

  {% if data.filled %}
    <p>Your content has been written to {{ data.file }}</p>
  {% endif %}

  <form action="{{ url_for('writetofile') }}" method=post>
    <label>What do you want to write to the file?</lable>
    <textarea name=content cols=60 rows=10 placeholder='Write here > Press submit'>
    </textarea>

    <input type=submit value='Lets Go!'>
  </form> 
</center>
</html></body>

运行应用程序:完成设置后,打开 RPi 终端,cd <path/to/AppDir>然后python myapp.py

打开系统上的任何浏览器并转到http://<yourRPi address>:8000/writetofile


更多事情要做: 1. 学习在screen. 它在后台运行一个进程。现在需要它,因为当您的 ssh 连接中断时,如果烧瓶服务器未在后台运行,它将关闭。

  1. 找出您要更改的配置文件。

  2. 弄清楚你想用烧瓶 URL 控制哪些系统配置或功能,你可以使用 subprocess 模块从 python 运行终端命令。

  3. 了解如何使用 Gunicorn 部署烧瓶。目前不是很重要。Flask 的内置服务器在运行 1-2 天后有时会变得无响应。

于 2013-10-07T23:38:34.547 回答