This post details how to use the DH parameters of a manipulator to perform inverse kinematics. Most robotics software packages have some functionality that performs this, so consider this notebook a look under the hood at what might be running at a lower level. You can also use this code to get the symbolic Jacobian for a manipulator and implement it directly in your own control code.
Check out the static notebook here.
Download the notebook and run it yourself here.