난 그냥 opt_hash를 사용하여 부품이 해킹의 비트인지 ARGV
from optparse import OptionParser
parser = OptionParser()
parser.add_option("-u", "--user", dest="user",
help="Database username")
parser.add_option("-p", "--password", dest="password",
help="Database password")
parser.add_option("-D", "--database", dest="database", default="myDatabase",
help="Database name")
parser.add_option("-e", "--engine", dest="engine", default="mysql",
help="Database engine")
parser.add_option("-H", "--host", dest="host", default="localhost",
help="Database host")
(options, args) = parser.parse_args()
def opt_hash(name):
global options
return getattr(options, name)
options.__getitem__ = opt_hash
metadata.bind = '%(engine)s://%(user)s:%(password)[email protected]%(host)s/%(database)s' % options
주를 사용하는 것보다 약간 더 좋은 방식으로이 작업을 수행하는 코드가 있습니다. 나는 OptionParser가 정상적인 해시를 반환하지 않기 때문에 이것을 사용하는데, 이것은 최종 행에서 사용하는 바인드 문자열의 niceness에 실제로 필요한 것이다.
문자열을 만드는 것이 의미가 없습니다. - sqlalchemy는이를 다시 구성 요소로 분리합니다. 'URL'의 인스턴스를 더 잘 생성하십시오. http://www.sqlalchemy.org/docs/05/reference/sqlalchemy/connections.html#sqlalchemy.engine.url.URL 'o = options; URL (o.engine, username = o.user, password = o.password, host = o.host, database = o.database) ' – nosklo
은 그러한 기술이 존재하지 않았다는 것을 깨달았습니다. 미래. – workmad3