2015-02-03 2 views
0

Я сделал класс питона, который контролирует мою звуковую систему в моем доме, класс выглядит следующим образом:управления класс питон удаленно

from django.db import models 
import youtube_dl, pygame, glob 

class PlayerControl(object): 
    def __init__(self): 
     pygame.mixer.init() 
    def download_music(self, video_url): 
     ydl_opts = { 
      'format': 'bestaudio/best', 
      'postprocessors': [{ 
      'key': 'FFmpegExtractAudio', 
      'preferredcodec': 'mp3', 
      'preferredquality': '192', 
      }], 
      'forcefilename': True, 
     } 
     ydl = youtube_dl.YoutubeDL(ydl_opts); 
     ydl.download(video_url) 
    def get_mp3_files_list(self): 
     return glob.glob("*.mp3") 
    def play_music(self, fileName): 
     pygame.mixer.music.load("1.mp3") 
     pygame.mixer.music.play() 
    def pause(self): 
     pygame.mixer.music.pause() 
    def replay(self): 
     pygame.mixer.music.play() 
    def get_volume(self): 
     return pygame.mixer.music.get_volume() 
    def set_volume(self, volume_to_set): 
     pygame.mixer.music.set_volume(volume_to_set) 

Чтобы сделать шаг вперед, я хотел бы сделать вид интерфейса контролирует это класс удаленно, используя лучший интерфейс по сравнению с оболочкой python ...

Я думаю, что управлять им через браузер было бы самым простым делом, Мой вопрос: как мне изменить классы python из браузера, используя HTTP-запросы.

+1

Вы хотите отправить http-запросы для вызова различных методов этого класса или отправить код на Python для выполнения? –

+0

Я хочу отправить http-запросы для вызова различных методов этого класса. – Itay

+0

@ Я надеюсь, что мой ответ помог вам, если вы все еще нуждаетесь в помощи, пожалуйста, дайте мне знать, как было бы полезно расширить мой ответ. – theheadofabroom

ответ

3

Если вы хотите контролировать это через http, вам нужно взять то, что у вас есть, и создать API, доступный в Интернете. Стандартной отраслевой практикой для этого в настоящий момент является REST API, но для вашей первой попытки я не стал бы вдаваться в подробности.

Я бы порекомендовал вам начать с микро-каркаса, такого как бутылка или колба. Хорошей новостью является то, что вы уже написали модель, с которой хотите взаимодействовать, теперь вам просто нужно подключить ее к чему-то.

Следуя шаблону MVC, вы захотите написать слой «Вид», который берет информацию из вашей модели или из возвращаемого значения ее методов и отображает ее так, как вы хотите ее использовать. Затем напишите контроллер, используя вашу веб-микроструктуру выбора, которая связывает модель и просматривает вместе, так что когда вы делаете HTTP-запрос на заданной конечной точке, он вызывает соответствующие методы и возвращает соответствующие данные.

Я сохранил все на высоком уровне здесь, но был бы рад ответить на конкретные вопросы из комментариев.

+0

Спасибо. Между бутылкой и колбой, что бы вы посоветовали начать? – Itay

+0

Я бы сказал, это зависит: если все, что вы хотите, это выставить бутылку API для отдыха, вы будете делать все, что хотите, и у нее нет зависимостей; Если вы хотите создать какие-либо веб-страницы, чтобы пойти с ним, вы можете посмотреть на флягу, она использует Jinja2, которая является отличной библиотекой шаблонов и имеет большую поддержку сообщества. Если вы хотите изо всех сил и погрузитесь в глубокий конец, вы можете попробовать Django, но я думаю, что это намного больше, чем вам нужно для этого проекта, и может добавить некоторую ненужную сложность. – theheadofabroom

Смежные вопросы