Un puits qui n'écrit pas d'ID de compte ou de mot de passe dans la source et qui est invité à entrer lors de l'exécution. C'est une très bonne bibliothèque pour la sécurité, mais j'y suis accro lorsque je l'utilise en Python, alors prenez-en note.
Cliquez ici pour les versions python et pip que j'ai essayées.
$ python -V
Python 2.7.9
$ pip freeze | grep pit
pit==0.3
Cliquez ici pour la description minimale.
import pit
opts = {
'require': {
'id': 'your id',
'password': 'your password',
}
}
account = pit.Pit.get('test.account', opts)
print account['id']
print account['password']
Mais quand je l'exécute, j'obtiens une erreur. Pour une raison quelconque, l'éditeur ne démarre pas lors de la première exécution. Puisque vous n'avez pas entré à la fois l'identifiant et le mot de passe, vous obtiendrez naturellement une KeyError lors de l'obtention de la valeur.
>>> import pit
>>>
>>> opts = {
... 'require': {
... 'id': 'your id',
... 'password': 'your password',
... }
... }
>>> account = pit.Pit.get('test.account', opts)
>>> print account['id']
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 'id'
Dans l'état par défaut, aucun éditeur n'était spécifié, j'ai donc dû spécifier vi.
if not os.environ.get('EDITOR'):
os.environ['EDITOR'] = 'vi'
Corrigez et exécutez. vi a été lancé, il est devenu possible d'entrer et il s'est terminé normalement.
>>> import pit
>>> import os
>>>
>>> if not os.environ.get('EDITOR'):
... os.environ['EDITOR'] = 'vi'
...
>>> opts = {
... 'require': {
... 'id': 'your id',
... 'password': 'your password',
... }
... }
>>> account = pit.Pit.get('test.account', opts)
>>> print account['id']
hoge
>>> print account['password']
hogehoge
Quand vous faites cela ...
from __future__ import absolute_import
from __future__ import unicode_literals
import pit
import os
if not os.environ.get('EDITOR'):
os.environ['EDITOR'] = 'vi'
opts = {
'require': {
'id': 'your id',
'password': 'your password',
}
}
account = pit.Pit.get('test.account', opts)
print account['id']
print account['password']
!!python/unicode 'id': !!python/unicode 'your id'
!!python/unicode 'password': !!python/unicode 'your password'
Un caractère mystérieux est ajouté lors de la saisie de l'identifiant et du mot de passe dans vi. En conclusion, le problème était que cette ligne était là, donc la supprimer le résoudra.
from __future__ import unicode_literals
Si vous passez le caractère unicode comme argument, le caractère "!! python / unicode" sera affiché. Par conséquent, même si unicode_literals n'est pas spécifié, le même phénomène se produira même s'il est décrit comme ceci.
opts = {
u'require': {
u'id': u'your id',
u'password': u'your password',
}
}
account = pit.Pit.get('test.account', opts)
Recommended Posts