Я начинаю с sqlalchemy.Я получаю операционные ошибки при копировании и вставке примера кода - PullRequest
0 голосов
/ 17 февраля 2019

Я просто пытаюсь начать использовать sqlalchemy.По какой-то причине я ничего не могу заставить работать.

Я установил sqlalchemy, импорт работает сам по себе.Я попытался запустить следующий код на этом сайте:

https://www.pythoncentral.io/introductory-tutorial-python-sqlalchemy/

Код выглядит следующим образом:

import os
import sys
from sqlalchemy import Column, ForeignKey, Integer, String
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import relationship
from sqlalchemy import create_engine

Base = declarative_base()

class Person(Base):
    __tablename__ = 'person'
    # Here we define columns for the table person
    # Notice that each column is also a normal Python instance attribute.
    id = Column(Integer, primary_key=True)
    name = Column(String(250), nullable=False)

class Address(Base):
    __tablename__ = 'address'
    # Here we define columns for the table address.
    # Notice that each column is also a normal Python instance attribute.
    id = Column(Integer, primary_key=True)
    street_name = Column(String(250))
    street_number = Column(String(250))
    post_code = Column(String(250), nullable=False)
    person_id = Column(Integer, ForeignKey('person.id'))
    person = relationship(Person)

# Create an engine that stores data in the local directory's
# sqlalchemy_example.db file.
engine = create_engine('sqlite:///sqlalchemy_example.db')

# Create all tables in the engine. This is equivalent to "Create Table"
# statements in raw SQL.
Base.metadata.create_all(engine)

Я скопировал и вставил код для созданияи я получаю следующую ошибку

Я перешел к http://sqlalche.me/e/e3q8 и, похоже, считает, что добавление pool_pre_ping = True к движку поможет решить проблему. В нем упоминаются проблемы с подключением, но на самом деле не понимаю, как это может быть, поскольку он просто создаетбаза данных sqlite.

Буду очень признателен за советы, как решить эту проблему.

Редактировать: Я добавил конкретный код в свой вопрос.

Также я пыталсявыполнение кода в pythonanywhere, и он работает как положено. Любое руководство о том, что может быть не так с моей машиной, будет оценено.

1 Ответ

0 голосов
/ 17 февраля 2019

Так что по какой-то причине мне нужно было указать абсолютный путь к месту, где должна быть база данных.Я обновил мой движок так:

sqlite: /// C: \ user \ file_path \ test.db

, что позволило ему создать базу данных.Однако я бы действительно предпочел просто создать базу данных в текущем каталоге.Если кто-то знает, что мне нужно сделать, чтобы заставить это работать, это было бы здорово.

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