I think most of us with medium to heavily planted tanks don't vacuum their gravel much at all. Some will vacuum up open areas of gravel, but leave the planted areas alone since the plants will use alot of the ditritus as food via their roots.
If you feel that you must vacuum (heavy fish load, nitrates spiking, etc) then I would keep with the hose / bucket method (probably using the gravel cleaner end of the python hooked to a host fed into a bucket). Get the siphon going, insert the end into the gravel, and when the gravel starts to get near the top of the python tube, pinch off the hose. Most of the light ditritus (dirt and nasty stuff) will stay suspended in the tube while the gravel falls back down. Take the tube out of the gravel after the gravel in the tube has fallen out, and let the water flow again. This will suck up the dirt that is suspended in the tube. Once most of the dirt is out of the tube and in the bucket, repeat.
This method will make your water column in the tank a little dirtier than normal which can lead to more frequent media changes in your filter and more water changes, but it is probably your best bet if you must vacuum.
Also, don't use this method (or vacuuming in general) in any areas that you have inserted root tabs, laterite, etc. It will only mess things up in your tank.
Hope that helps... might be a bit of a confusing set of instructions there. If it's not clear let me know and I'll try to make it more clear.