To POST data pass the encoded query arguments as data to urlopen()

Python 2

import urllib
query_parms = {'username':'stackoverflow', 'password':'me.me'}
encoded_parms = urllib.urlencode(query_parms)
response = urllib.urlopen("<https://stackoverflow.com/users/login>", encoded_parms)
response.code
# Output: 200
response.read()
# Output: '<!DOCTYPE html>\\r\\n<html>\\r\\n<head>\\r\\n\\r\\n<title>Log In - Stack Overflow'

Python 3

import urllib
query_parms = {'username':'stackoverflow', 'password':'me.me'}
encoded_parms = urllib.parse.urlencode(query_parms).encode('utf-8')
response = urllib.request.urlopen("<https://stackoverflow.com/users/login>", encoded_parms)
response.code
# Output: 200
response.read()
# Output: b'<!DOCTYPE html>\\r\\n<html>....etc'