类定义中的Python语法错误

时间:2017-02-08 11:58:36

标签: python

我是Python新手我在课程def行收到错误。我不确定我做了什么错。请检查并告诉我。

class contactservices():
    def GetDirectorySearchList(userId:int, searchKey,result:ContactResultSet):
    ret = RETURN_CODE.RECORD_NOT_EXISTS 
    cursor = connections['default'].cursor()
    rows =""

invalid syntax (contactservices.py, line 15)

提前致谢。

完整代码:

from django.db import connections
from api.enums  import RETURN_CODE
from api.user.contactmodel import ContactModel
from api.user.contactmodel import DirectoryModel
from api.user.resultset import ContactResultSet
from api.datalayer.dbservices import dbservices

class contactservices():

"""Get Directory Search of a specific user"""
def GetDirectorySearchList(userId:int, searchKey, result:ContactResultSet):
     ret = RETURN_CODE.RECORD_NOT_EXISTS
     cursor = connections['default'].cursor()
     rows =""
     try:     
        #user triple quote for multiline string.   
        msqlquery = """SELECT a.id, username, first_name, last_name, firm,email,extension, extpassword,start_date,expiry_date,status,presence_status
         ,aliasname,picturepath,statusupdatedate
        FROM  ocktopi_login a where (first_name LIKE '%%""" + str(searchKey) + "%%'  OR  last_name LIKE '%%" + str(searchKey) + "%%' OR aliasname LIKE '%%" + str(searchKey) + "%%') AND id NOT IN (select contact from usercontactmapping where user = """ + str(userId) + ") and id <> " + str(userId) + "";
        #cursor.execute(msqlquery)
        rows = dbservices.query_to_dicts(msqlquery)
        ret = RETURN_CODE.RECORD_EXISTS         
     except Exception as e:
         ret = RETURN_CODE.RECORD_ERROR         

     #We dont have a way to map with column name . So only solution is column index.Changed to dictory using a method now.
     directorylist = list()
     for row in rows:
        directory = DirectoryModel()
        directory.Id = row['id']
        directory.Username = row['username']
        directory.FirstName = row['first_name']
        directory.LastName = row['last_name']
        directory.Firm = row['firm']
        directory.Email = row['email']
        directory.Extension = row['extension']
        directory.Status = row['status']
        directory.PresenceStatus = row['presence_status']
        directory.AliasName = row['aliasname']
        directory.Picturepath = row['picturepath']
        directorylist.append(directory)

     result.ReturnCode = int(ret)
     return directorylist

"""Get Contact Details of a specific user"""
def GetContactList(userId:int, result:ContactResultSet):
     ret = RETURN_CODE.RECORD_NOT_EXISTS
     cursor = connections['default'].cursor()
     rows =""
     try:     
        #user triple quote for multiline string.   
        msqlquery = """SELECT a.id, username, first_name, last_name, firm,email,extension, extpassword,start_date,expiry_date,status,presence_status
         ,aliasname,picturepath,statusupdatedate
        FROM  ocktopi_login  a inner join usercontactmapping b on a.id=b.contact and a.id <> """ + str(userId) + " and b.user= " + str(userId) + "";
        rows = dbservices.query_to_dicts(msqlquery)
        ret = RETURN_CODE.RECORD_EXISTS         
     except Exception as e:
         ret = RETURN_CODE.RECORD_ERROR         

     #We dont have a way to map with column name . So only solution is column index.Changed to dictory using a method now.
     contactlist = list()
     for row in rows:
        contact = ContactModel()
        contact.Id = row['id']
        contact.Username = row['username']
        contact.FirstName = row['first_name']
        contact.LastName = row['last_name']
        contact.Firm = row['firm']
        contact.Email = row['email']
        contact.Extension = row['extension']
        contact.Status = row['status']
        contact.PresenceStatus = row['presence_status']
        contact.AliasName = row['aliasname']
        contact.Picturepath = row['picturepath']
        contactlist.append(contact)

     result.ReturnCode = int(ret)
     return contactlist

"""Add user contact"""
def AddUserContact(userId:int, contactId:int):
     ret = 0
     cursor = connections['default'].cursor()
     rows =""
     try:     
        msqlquery = """insert into usercontactmapping (user,contact) values(%s, %s)""";
        cursor.execute(msqlquery,(userId, contactId))
        ret = cursor.rowcount
        return ret      
     except Exception as e:
         ret = -1
     finally:
         cursor.close()
     return ret 

"""Remove user contact"""
def RemoveUserContact(userId:int, contactId:int):
     ret = 0
     cursor = connections['default'].cursor()
     rows =""
     try:     
        msqlquery = """delete from usercontactmapping where user=%s and contact=%s""";
        cursor.execute(msqlquery,(userId, contactId))
        ret = cursor.rowcount
        return ret      
     except Exception as e:
         ret = -1
     finally:
         cursor.close()
     return ret 

1 个答案:

答案 0 :(得分:1)

尝试:

def GetDirectorySearchList(userId, searchKey,result):
     ret = RETURN_CODE.RECORD_NOT_EXISTS 

     cursor = connections['default'].cursor()
     rows = ""

userId:int等注释在Python 2.7中不起作用。 还要确保代码缩进正确。