Ein Pit, der keine Konto-ID oder kein Kennwort in die Quelle schreibt und zur Laufzeit zur Eingabe aufgefordert wird. Es ist eine sehr gute Bibliothek für die Sicherheit, aber ich bin süchtig danach, wenn ich sie in Python verwende. Notieren Sie sie sich also.
Klicken Sie hier für die Python- und Pip-Versionen, die ich ausprobiert habe.
$ python -V
Python 2.7.9
$ pip freeze | grep pit
pit==0.3
Klicken Sie hier für die Mindestbeschreibung.
import pit
opts = {
'require': {
'id': 'your id',
'password': 'your password',
}
}
account = pit.Pit.get('test.account', opts)
print account['id']
print account['password']
Aber wenn ich es tatsächlich starte, bekomme ich eine Fehlermeldung. Aus irgendeinem Grund startet der Editor nicht beim ersten Durchlauf. Da Sie weder ID noch Passwort eingegeben haben, erhalten Sie beim Abrufen des Werts natürlich einen KeyError.
>>> 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'
Im Standardzustand wurde kein Editor angegeben, daher musste ich vi angeben.
if not os.environ.get('EDITOR'):
os.environ['EDITOR'] = 'vi'
Korrigieren und ausführen. vi wurde gestartet, es wurde möglich, Eingaben zu machen, und es endete normal.
>>> 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
Wenn Sie dies tun ...
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'
Bei der Eingabe von ID und Passwort in vi wird ein mysteriöses Zeichen hinzugefügt. Zusammenfassend war das Problem, dass diese Zeile vorhanden war. Wenn Sie sie also löschen, wird sie behoben.
from __future__ import unicode_literals
Wenn Sie das Unicode-Zeichen als Argument übergeben, wird das Zeichen "!! python / unicode" angezeigt. Selbst wenn unicode_literals nicht angegeben wird, tritt daher das gleiche Phänomen auf, selbst wenn es so beschrieben wird.
opts = {
u'require': {
u'id': u'your id',
u'password': u'your password',
}
}
account = pit.Pit.get('test.account', opts)
Recommended Posts