【问题标题】:Raspberry Pi Web-App Configuration WizardRaspberry Pi Web 应用程序配置向导
【发布时间】:2013-10-14 16:13:32
【问题描述】:

我正在使用 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,还是 Cappuccino?我不知道从哪里开始。我需要能够在计算机上编辑设置文件

【问题讨论】:

    标签: python django web-applications user-interface raspberry-pi


    【解决方案1】:

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

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

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


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

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


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

    目录结构会是这样的。

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

    myapp.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)
    

    form.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 &lt;path/to/AppDir&gt; 然后python myapp.py

    打开系统上的任意浏览器并转到http://&lt;yourRPi address&gt;:8000/writetofile


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

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

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

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

    【讨论】:

    • 很好的例子,但要小心,提供的 python 代码不能开箱即用,@app.route 注释中(至少)缺少分号和 render_templae 的缺失导入(从烧瓶导入渲染模板)。
    猜你喜欢
    • 1970-01-01
    • 2020-11-25
    • 1970-01-01
    • 2022-01-16
    • 1970-01-01
    • 1970-01-01
    • 2020-06-30
    • 1970-01-01
    • 2020-09-17
    相关资源
    最近更新 更多