Как использовать Python Keyring из Django без взаимодействия с пользователем? - PullRequest
0 голосов
/ 06 октября 2019

Мне нужно хранить некоторые пароли сторонних серверов в Django, если быть более точным, в views.py. Они используются для Paramiko SFTP (межмашинное взаимодействие), и вместо паролей невозможно использовать ключи. Конечно, я не люблю писать эти пароли непосредственно в исходный код. Я понял, что Python Keyring будет хорошим способом хранения паролей, и следующий короткий код работает нормально:

import keyring

try:
    keyring.get_keyring()
    keyring.set_password("system", "user", "passWORD")
    pword = keyring.get_password("system", "user")
    print pword

except Exception as e:
    print e  

Я переместил код в Django (views.py):

from django.http import HttpResponse

import keyring

def index(request):
    try:
        keyring.get_keyring()
        keyring.set_password("system", "user", "passWORD")
        pword = keyring.get_password("system", "user")
        return HttpResponse(pword)

    except Exception as e:
        return HttpResponse(e)

Затем я попросил Django запустить встроенный сервер разработки, набрав: sudo python manage.py runserver

Наконец, я решил исправить локальный URL-адрес. Результат: в браузере показывалось диалоговое окно с просьбой создать (с первой попытки), а затем открыть (при следующих попытках после того, как я его создал) kdewallet.

Можно ли использовать набор ключей из Django без необходимости взаимодействия с пользователем (= без этих диалогов)?

...