dnspython is a DNS toolkit for Python. It supports almost all of the record types. It can be used for queries, zone transfers, and dynamic updates. It supports TSIG authenticated messages and EDNS0. dnspython provides both high and low level access to DNS. The high level classes perform queries for data of a given name, type, and class, and return an answer set. The low level classes allow direct manipulation of DNS zones, messages, names, and records.
Twisted Names is both a domain name server as well as a client resolver library. It comes with an "out of the box" nameserver that can read most BIND-syntax zone files as well as a simple Python-based configuration format. It can act as an authoritative server, perform zone transfers from a master to act as a secondary, act as a caching nameserver, or any combination of these. The client resolver library provides functions for querying all commonly used record types as well as a replacement for the blocking gethostbyname() function provided by the Python stdlib socket module.