在MySQLdb(python)中使用多个函数

在MySQLdb(python)中使用多个函数,python,mysql-python,Python,Mysql Python,下面的代码运行得很好,但我想将代码分成函数(这是我第一次使用MySQLdb) 问题:如何创建一个数据库连接并将其用于多个功能,这是我迄今为止写的(不起作用): 您需要将参数传递给init,以确保该类连接到正确的数据库 import MySQLdb class DB(): def __init__(self, server, user, password, db_name): db = MySQLdb.connect(server, user, password, db

下面的代码运行得很好,但我想将代码分成函数(这是我第一次使用MySQLdb)

问题:如何创建一个数据库连接并将其用于多个功能,这是我迄今为止写的(不起作用):


您需要将参数传递给init,以确保该类连接到正确的数据库

import MySQLdb

class DB():
    def __init__(self, server, user, password, db_name): 
        db = MySQLdb.connect(server, user, password, db_name)
        self.cur = db.cursor()

    def time_statistic(self):
        sql = "SELECT activity_log.datetime FROM activity_log"
        self.cur.execute(sql)
        self.date_data = self.cursor.fetchone()
        for content in self.date_data:
            print content 

    def test1(self):
        pass


if __name__ == '__main__':

    db = DB(<server>, <user>, <password>, <db_name>)
    db.time_statistic()
    db.test1()
导入MySQLdb
类DB():
定义初始化(自我、服务器、用户、密码、数据库名称):
db=MySQLdb.connect(服务器、用户、密码、数据库名称)
self.cur=db.cursor()
def time_统计(自身):
sql=“从活动日志中选择活动日志。日期时间”
self.cur.execute(sql)
self.date_data=self.cursor.fetchone()
对于self.date_数据中的内容:
印刷内容
def测试1(自我):
通过
如果uuuu name uuuuuu='\uuuuuuu main\uuuuuuu':
db=db(,)
db.time_statistic()
db.test1()

将中的参数替换为连接到db所需的实际值。您可能还希望在上述代码中添加一些错误处理。

您需要将参数传递给init,以确保类连接到正确的数据库

import MySQLdb

class DB():
    def __init__(self, server, user, password, db_name): 
        db = MySQLdb.connect(server, user, password, db_name)
        self.cur = db.cursor()

    def time_statistic(self):
        sql = "SELECT activity_log.datetime FROM activity_log"
        self.cur.execute(sql)
        self.date_data = self.cursor.fetchone()
        for content in self.date_data:
            print content 

    def test1(self):
        pass


if __name__ == '__main__':

    db = DB(<server>, <user>, <password>, <db_name>)
    db.time_statistic()
    db.test1()
导入MySQLdb
类DB():
定义初始化(自我、服务器、用户、密码、数据库名称):
db=MySQLdb.connect(服务器、用户、密码、数据库名称)
self.cur=db.cursor()
def time_统计(自身):
sql=“从活动日志中选择活动日志。日期时间”
self.cur.execute(sql)
self.date_data=self.cursor.fetchone()
对于self.date_数据中的内容:
印刷内容
def测试1(自我):
通过
如果uuuu name uuuuuu='\uuuuuuu main\uuuuuuu':
db=db(,)
db.time_statistic()
db.test1()

将中的参数替换为连接到db所需的实际值。您可能还想在上面的代码中添加一些错误处理。

谢谢Colwin的回答,但代码仍然不起作用,下面是错误消息:
文件“read_MySql.py”,第4行,在DB()类中:文件“read_MySql.py”,第7行,在DB self.cur=DB.cursor()NameError中:名称“DB”未定义
。可能会出什么问题?这行在你的init中吗?db=MySQLdb.connect(服务器、用户、密码、数据库名称)是的,它是-->
db=MySQLdb.connect(服务器、用户、密码、数据库名称)
你能将整个回溯添加到你的问题中吗?我的错。我没有检查缩进,对self.cur=db.cursor()使用了“space”,但对其余部分使用了“tab”。你的代码运行得很好。非常感谢你。谢谢Colwin的回答,但是代码仍然不起作用,下面是错误消息:
文件“read_MySql.py”,第4行,在DB()类中:文件“read_MySql.py”,第7行,在DB self.cur=DB.cursor()name中错误:没有定义名称“DB”
。可能会出什么问题?这行在你的init中吗?db=MySQLdb.connect(服务器、用户、密码、数据库名称)是的,它是-->
db=MySQLdb.connect(服务器、用户、密码、数据库名称)
你能将整个回溯添加到你的问题中吗?我的错。我没有检查缩进,对self.cur=db.cursor()使用了“space”,但对其余部分使用了“tab”。你的代码运行得很好。非常感谢你。你让我开心了……)
import MySQLdb

class DB():
    def __init__(self, server, user, password, db_name): 
        db = MySQLdb.connect(server, user, password, db_name)
        self.cur = db.cursor()

    def time_statistic(self):
        sql = "SELECT activity_log.datetime FROM activity_log"
        self.cur.execute(sql)
        self.date_data = self.cursor.fetchone()
        for content in self.date_data:
            print content 

    def test1(self):
        pass


if __name__ == '__main__':

    db = DB(<server>, <user>, <password>, <db_name>)
    db.time_statistic()
    db.test1()