0

我正在使用 PyQT4 + PostgreSQL 9.1 制作用户管理系统。在编写以下代码以建立与数据库的连接时,出现语法错误:-

from PyQt4 import QtSql, QtGui , QtCore
import _sha256
import psycopg2


def createConnection(): 

    QSqlDatabase db = QSqlDatabase.addDatabase("QPSQL"); 
    db.setDatabaseName("mysite");
    db.setUserName("postgres");
    db.setPassword("password");
    db.setHostName("localhost");
    bool ok = db.open();
    if not db.open():
        QtGui.QMessageBox.critical(None, QtGui.qApp.tr("Cannot open database"),
                QtGui.qApp.tr("Unable to establish a database connection.\n"
                              "This example needs PostgreSQL support."),
                QtGui.QMessageBox.Cancel)
        return False

    query = QtSql.QSqlQuery()
    query.exec_("create table usermanagement(ID int primary key,"
                "userid int,firstname varchar(20), lastname varchar(20),usertype varchar(15),password varchar(20),)")
    query.exec_("insert into usermanagement values(1, 'Danny','Boyle','normaluser','normaluser')")

    return True

错误信息如下:-

QSqlDatabase db = QSqlDatabase.addDatabase("QPSQL"); ^ SyntaxError: 无效的语法

4

1 回答 1

1

你不能在 Python 中声明变量类型;类名后跟空格后跟变量名不是 Python 语法。

做吧db = QSqlDatabase.addDatabase("QPSQL")

(你有同样的问题bool ok = ...

您的代码也没有定义QSqlDatabase从任何地方开始;大概你的意思是从某个地方导入它。

还要从代码中删除所有分号;它们不是 Python 中的语句终止符所必需的,并且被认为是不好的样式。

于 2012-08-30T11:11:28.477 回答