I was dealing with the same problem with our rescue dog Gracie. She has never learned to walk on a leash properly.
I'm not a professional by all means, and all the tips the other users gave you are great and I agree with. And as I had the same problem maybe my experience in a little bit more detail can help you as well. Because I know how disappointing it can be when you have the feeling you can't give your dog a great experience when walking and can't enjoy yourself neither. For me a 360 degree approach worked the best.
1) getting the dog's attention in general
2) the collar
3) the "kick"
4) the obedience class
5) time and patience
1) Attention:
Gracie is a great and loving dog but wouldn't give much attention to me when she was alert by some other stimulus that was more interesting. And that was almost everything when we took a walk, a sense in the air or on the ground, the wind, the speed she didn't agree with, a noise, a mailbox, .... almost everything. I gave her firm but quick correction with the leash, she was good for a second or two and then started pulling again. I changed directions, let her sit, started walking again and after five seconds we were back to pulling. I tried treats in front of her nose to make her follow but that didn't work for her, she was not even interested in a treat when she was in her alert zone. I thought I already tried every good tip a dog trainer can give you but it just didn't work. I had to do something different, a bit unconventional. I started to change the training environment for this purpose. It's like taking steps back but in fact it accelerated the training process for us. I started to spend my time (f.e. until the pasta water was cooking) to teach her little tricks. At home treats worked wonder and she started to listen in a different way. Even though I didn't plan to have a circus dog ever, Gracie seemed to have fun with it and she started to be more interested in what I want from her. So I kept doing it, even outside when we were walking. Maybe I was more clear on my commands and as a result she would "sit pretty" or shake paws even when she was distracted by something else. I guess this is because she knows exactly what I want from her in that moment. Of course there is no switch from one day to the other but the amount of attention slowly increased. And I think it was important to do that randomly. While another dog was barking behind a fence we passed but also when she was more in a more relaxed stage. I tried to do it in every situation, not only when she was alert and not only when she was more relaxed. This way the commands became more unexpected for Gracie and therefore she developed a higher attention level in general. Now (after 2 months of training she is almost perfect on the leash).
2)The collar:
I started with a regular buckle collar, like probably everybody that hasn't worked with a difficult dog before. Gracie pulled and pulled until she almost choked herself. I changed to a non-slip-collar (nylon with a chain part) with no big change in her behavior. By that time I had already registered for obedience class and the trainers wanted us to have a non-slip-collar or choke chain or prong collar. Uhhh, a prong collar I thought, I don't wanna do that to Gracie (now I know it looks worse than it actually is, if used the right way). But anyway I bought a choke chain, which for us works just fine. I think it's important to remember that no matter what training collar you use or works for your dog, it still is a training "tool" and should only be put on for the times of training. This - to me - is something people can do wrong, to buy a more effective collar and then expect the collar to change the dogs behavior for ever. In fact a collar is only a tool that can help you with your training but it doesn't do the training for you.
The choke chain we are using is just big enough to easily fit over her head and not much longer. Otherwise it has too much play and you will have a hard time to give that quick effective correction you are looking for. And it's most effective if it sits right behind the ears, very high on the neck and I also try to keep the end of the collar where the leash is connected to, right on top. You might have to adjust the collar and put it back to this position while you do your training as it will naturally follow gravity after a little while

The better the collar sits right there, the less power you will need to give your correction.
3) The "kick"
I think the kick is something that became kind of popular with the Cesar Milan shows. But I fear that too many people think they can do it the same way as Cesar does it. If you watch Cesar he is never really "kicking", it's more of a touch. It comes exactly in the right moment, unexpected for the dog, correlates with the rest of his body language and leash corrections and sounds. And he is not using this "kick" for more then 2 or 3 times.
But we "normal dog owners" didn't practice that for the last 20 years with several hundreds of dogs and so it can happen that it gives the wrong signal to the dog or even worse it really hurts him, as this part of the dog's body is very sensitive. As I'm not really sure how to do it right I simply don't do it with my foot. But I found something that might help too, at least it worked for Gracie and me.
Instead of using my foot I took the rest of the leash behind my body and let the end of it lightly touching Gracie's flank. You will see that the area is sensitive enough to make the dog feel something and change his focus for a second. And this little second is your moment to get the dog's attention back and immediately continue with your training. It is important that there is a change for your dog immediately as otherwise it just becomes ineffective.
4) Obedience Class
Yes, I think the obedience class is something every dog and every dog owner should visit at least the basic one. It's a lot of different stuff you learn there and it's not so much about sit and down as your dog may already do that at home (like Gracie did). What she and me got out of the classes is the patience to sit still while the trainers explain the next command, to become socialized around other dogs without running free and playing like in the dog park. It's about the two of you becoming one unit as it's you and your dog in the middle of many other units. I think this is a very important experience beyond the obedience commands which will strengthen your relationship. It will help you in many different ways.
5) Patience and time:
Yeah, sounds so obvious but it isn't as easy as it may seem, at least it wasn't for me. I found that I had to keep the training super short. Even though it meant I had to back to "start", a stage I thought we already have left behind. If it is only 2 minutes you can get your dog's full attention it's 2 minutes and that is fine. Next week it may be already 5 minutes and so on. Just try to have a plan what you wanna train with your dog and also try that it is you who ends the training session. Rather end with the dog's full attention after 2 minutes and have a happy feeling then try to do 15 minutes in a row and it's your dog ending the session by simply walking away and you are unhappy even though the other 14 minutes were great.
Later the walk itself can and will be the physical and mental exercise for your dog(s) the same time. But in the beginning you may wanna play some more fetch in the backyard or let them run in the dog park for the physical part and focus on the mental part and keep the walks short, until they are getting better on the leash. And maybe try one dog after the other as two dogs at the same time would be even tough or too much for professional dog trainers.
I hope this helped a little. I think you will do great and your dogs and you will have a great time together. Just don't put too much pressure on yourself, it's baby steps for us normal people
