2

Я создаю мой первый проект с Raspberry Pi: http://www.howtogeek.com/146410/how-to-automate-your-always-on-raspberry-pi-download-box/all/Raspberry Pi Веб-приложение Мастер настройки

Учитывая, есть много настройки, чтобы быть сделано, мне было интересно, если кто-то может дать мне некоторые указатели и поисковые термины чтобы скомпоновать веб-приложение, подобное CouchPotato, которое я мог бы выполнить пользователями для выполнения большинства настроек в одном мастере. (Т.е. запись в настройках файлов других веб-приложений.)

Я хотел бы знать:

  • Как установить веб-приложение, чтобы запустить локально RPi, а также использовать специальный порт
  • Что инструменты мне нужны? (например, рамочные, языки)
  • Как я могу создать несколько довольно GUI Веб 2.0 (например, мастер CouchPotato (image, repo))

Ищу в Джанго или капуччино? Я не знаю, с чего начать. Мне нужно иметь возможность редактировать файлы настроек на компьютере

ответ

4

Установить Python: Вам необходимо установить python на ОС Rpi. Если он еще не установлен, процесс должен зависеть от используемой ОС. Я нашел this в поиске Google.

Чтобы проверить, установлен ли его, введите python в терминал. Он должен запустить интерактивную оболочку python, если она установлена.

Если вы устанавливаете python заново. После его проверки проверьте, был ли установлен пип с питоном. 'which pip' должен дать вам путь к установленному пипу. Если нет, sudo easy_install pip должен делать.


Установите Flask: Колба является микрокаркас для питона. Джанго хорош, но может быть слишком велико для того, что вы хотите сделать. Колбу легко узнать (мнение) и свет.

После установки python и соответствующих менеджеров пакетов вы можете либо запустить sudo pip install Flask, либо sudo easy_install Flask в терминале RPi.


Sample 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) 

формы.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-адресов, вы можете использовать модуль подпроцессора для запуска команд терминала из python.

  3. Узнайте, как развернуть колбу с помощью Gunicorn. На данный момент это не очень важно. Встроенный сервер Flask становится невосприимчивым, когда он работает более 1-2 дней.

+0

Хороший пример, но быть осторожным, предоставленный код питон не работает из коробки, есть (по крайней мере) не хватает запятой в @ app.route аннотаций и для импорта скучаю render_templae (от flask import render_template). –