Pythons variable names are just labels on variables. When you import * all those labels are local and when you then set the database, you just replace the local variable, not the one in toolsmodule. Hence, do this:
toolsmodule.py:
database = "original"
def printdatabase():
print "Database is", database
And then run:
import toolsmodule
toolsmodule.database = "newdatabase"
toolsmodule.printdatabase()
The output is
Database is newdatabase
Note that if you then from ANOTHER module ALSO did an import * the change is not reflected.
In short: NEVER use from x import *. I don't know why all newbies persist in doing this despite all documentation I know of says that it's a bad idea.