Почему я не могу подключиться к базе данных - PullRequest
0 голосов
/ 04 декабря 2018
import lot_details, car_details
import numpy as np
import sqlite3

conn = sqlite3.connect('parkingLot.db')
c = conn.cursor()

class Parking(object):


    """
    Parking class which has details about parking slots
    as well as operation performed on parking are present here
    """

    def __init__(self):
        self.slots = {}

    def create_parking_lot(self, no_of_slots):

        try:
            c.execute('CREATE TABLE IF NOT EXISTS parkingTable(slot_no REAL, reg_no TEXT, colour TEXT, total_time TEXT,charge TEXT)')
        except Exception as ex:
            print("Couldn't make a table in DB")
        no_of_slots = int(no_of_slots)

        if len(self.slots) > 0:
            print ("Parking Lot already created")
            return

        if no_of_slots > 0:
            for i in range(1, no_of_slots+1):
                temp_slot = lot_details.PSlot(slot_no=i, available=True)
                self.slots[i] = temp_slot
            print ("Created a parking lot with {} slots" .format(no_of_slots))
        else:
            print ("Number of slots provided is incorrect.")
        return

Используя приведенный выше код, я пытаюсь создать базу данных (что успешно), но сейчас я не могу создать таблицу внутри нее с помощью приведенной выше команды.Я попытался сделать это отдельно, его работа там.Но я не могу создать его, используя приведенный выше код.

1 Ответ

0 голосов
/ 10 декабря 2018

В зависимости от того, как и где вы создаете объект Parking, я подозреваю, что это может быть проблемой с областью видимости, либо передайте соединение db в конструктор, либо просто создайте его в самом конструкторе.Код изменен для краткости.Следующее работает для меня.

import sqlite3

class Parking(object):

    def __init__(self):
        self.slots = {}
        self.conn = sqlite3.connect('parkingLot.db')

    def create_parking_lot(self, no_of_slots):

        try:
            cur = self.conn.cursor()
            cur.execute('CREATE TABLE IF NOT EXISTS parkingTable(slot_no REAL, reg_no TEXT, colour TEXT, total_time TEXT,charge TEXT)')
        except Exception as ex:
            print("Couldn't make a table in DB")

        return

parking = Parking()
parking.create_parking_lot(5)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...