Seriously...who cares if others think you are a good parent! If you think you are doing the right thing, and you are not abusing your daughter, then do what you have to do. Everyone has their opinions on spanking...you have to make your choices and choose your battles.
My daughter is only 2, so I have not dealt with the whole school thing yet. Have you tried a reward system? I have a friend who takes her son to "school"/ day care and they have a poster in the kitchen. He gets to put a sticker on the poster every day that he is good at school (no problems with behavior or potty training). When he gets 10 or 15? stickers he gets a reward. For him, Bob the Builder is the best, so he gets to buy a BTB DVD. Just a thought. You might find a more relaxed form of rewards instead of punishment is effective.
I have swatted my daughter for putting herself in danger, but I try to reserve that for serious situations. Try letting your daughter know that good behavior outweighs the bad. If she gets more attention from you (good or bad), she will seek that out. Make being good the best thing ever. I am also a high school teacher, and this works for them too!! They really don't change that much. Outline what it means to be good with her. Agree on the behaviors that you expect, and hold her to them. Maybe take away some privileges if she gets a bad report, something that is important to her. It could be tv, a certain toy, computer time...whatever you can think of that would make her realize that good behavior is what is expected. If she acts out less, then it is working. If it doesn't work, then try something else. One thing to consider is that spanking her didn't really work. AND remember that she is a kid...a really little kid...she is going to make mistakes. Talk to her about what she did wrong. Remind her often of what you expect. She does understand you, and she can do it...give her some time, and tell her you love her!! :)
GOOD LUCK!!