Thats what I did originally, but in my testing I found that when the field is left blank, the key exists in the dict and its just an empty string. Thus it won't use the 0.0.0.0 default. 

So if key is missing, it will be None, but if is blank it is empty string. Both evaluate to False and the "or" syntax lets me pass in 0.0.0.0