Problem With Insert with MySQLdb
Hello, I am a complete beginner with Python. I've managed to get mod_python up and running with Apache2 and I'm trying to a simple insert into a table in a MySQL database. I'm using the MySQLdb library for connectivity. I can read from the database no problem, but when I do an insert, the value never gets added to the database, even though there is no error, and the SQL is fine (I print out the SQL statement in the function). When I copy and paste the sql from my browser and insert directly into MySQL, it works fine. Here is the function in question: def add(req): db = MySQLdb.connect(host="intranet", user="root", passwd="", db="intranet") # create a cursor cursor = db.cursor() # execute SQL statement sql = "INSERT INTO category (category_name) VALUES ('" + req.form['category'] + "')" cursor.execute(sql) return sql The SQL it is outputting is: INSERT INTO category (category_name) VALUES ('Test') Am I doing something obviously incorrect here? Thanks, Dave -- http://mail.python.org/mailman/listinfo/python-list
Where to save classes? How to access classes?
Hi, I'm trying to get into the object oriented aspect of Python. If I create a custom class (in it's own file), how do I access that class in a function in a different file? In Java there's the notion of a CLASSPATH, where you can tell the compiler to look for classes. Is there something similar to this in Python? Thanks, Dave -- http://mail.python.org/mailman/listinfo/python-list
Can't instantiate class
Hello, Here is a very basic question, but it is frustrating me to no end nonetheless. I have one file called addLink.py. In a method in this file I am trying to instantiate a class and call a method from that class. Here is the code: def getCategories(): # instantiate the DataUtil class db = DataUtil() # and call the getConnection() method connection = db.getConnection() ... At the top of this file I am importing the DataUtil module (named DataUtil.py) with this line: import DataUtil The DataUtil.py file resides in the same directory as the above file and looks like this: import MySQLdb class DataUtil: def __init__(self): print "init" def getConnection(self): return MySQLdb.connect(host="host", user="user", passwd="pass", db="test") When I execute the getCategories() method above I get the following error: File "C:\Apache2\htdocs\Intranet\addLink.py", line 42, in getCategories db = DataUtil() TypeError: 'module' object is not callable Any idea what I'm doing wrong? Thanks, Dave -- http://mail.python.org/mailman/listinfo/python-list
Re: Can't instantiate class
Thanks for your prompt reply. Ok, so If use your first suggestion (db = DataUtil.DataUtil() ), I get this error: AttributeError: 'module' object has no attribute 'DataUtil' If I try importing the class directly (from DataUtil import DataUtil), I get this error: ImportError: cannot import name DataUtil Could these errors have something to do with the fact that I am doing this through mod_python? Thanks again, Dave Michael P. Soulier wrote: > On 11/6/05, David Mitchell <[EMAIL PROTECTED]> wrote: > >>import DataUtil >> >> File "C:\Apache2\htdocs\Intranet\addLink.py", line 42, in getCategories >> db = DataUtil() >> >>TypeError: 'module' object is not callable > > > You've imported module DataUtil, and by calling DataUtil(), you're > trying to call the module, hence the error. I think you want > > db = DataUtil.DataUtil() > > Or, > > from DataUtil import DataUtil > > And then your code will work. > > Mike > > -- > Michael P. Soulier <[EMAIL PROTECTED]> > -- http://mail.python.org/mailman/listinfo/python-list