как вызвать метод удаленной ткани в django

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

def get_hostname(request): hostname = os.system('fab remote_server hostname') return hostname 

3 Solutions collect form web for “как вызвать метод удаленной ткани в django”

Для большего контроля и гибкости вы должны использовать ткань как библиотеку. см .: http://docs.fabfile.org/en/1.3.3/usage/library.html

 import fabric.api as fab from fabric.network import disconnect_all from contextlib import contextmanager @context_manager def ssh(settings): with settings: try: yield finally: disconnect_all() def hostname(request, host='somehost', user='someuser', pw='secret'): with ssh(fab.settings(host_string=host, user=user, password=pw)): return fab.run('hostname') 

Если на сервере есть необходимые части для ткани, вы можете просто импортировать файл fabfile при вызове функции напрямую.

(Это всего лишь некоторый код, о котором я мечтал YMMW)

 import fabfile as f #Your fabfile must be somewhere it can be imported def get_hostname(request): hostname = f.remote_server(hostname) return hostname 

Вы также можете импортировать и использовать ткань непосредственно из django

Проверьте fabric.tasks.execute() после версии 1.3.

Python - лучший язык программирования в мире.