SQLAlchemy를 사용하여 데이터베이스의 기존 테이블에 연결 (Connect to existing tables in database using SQLAlchemy)


문제 설명

SQLAlchemy를 사용하여 데이터베이스의 기존 테이블에 연결 (Connect to existing tables in database using SQLAlchemy)

저는 파이썬을 처음 접했습니다. 나는 파이썬을 사용하여 마이크로 서비스를 개발하기 위해 플라스크를 사용하고 있습니다. 데이터베이스에 연결하기 위해 Sqlalchemy를 사용하고 있습니다. 모델을 만들고 db의 기존 테이블에 연결하는 것과 같은 표준 접근 방식이 있습니까? 그리고 Spring 부트 서비스와 마찬가지로 쿼리를 위한 저장소 클래스가 있습니까? 아니면 표준 절차가 무엇입니까? 모든 코드 조각을 감사합니다.


참조 솔루션

방법 1:

You do not need to create models at all by using the database's Metadata.

I used the following approach:

create engine

engine = sqlalchemy.create_engine('urlpwportetc...')

load the metadata using the engine as the bind parameter

metadata = sqlalchemy.Metadata(bind=engine)

make a reference to the table

my_table = sqlalchemy.Table('exact_table_name', metadata, autoload = True)

you can then start constructing your db queries using (for example)

query = my_table.insert()
query.values({'column': value1, 'column2': value2})

this is then executed with

my_session = Session(engine)
my_session.execute(query)
my_session.close()

방법 2:

One of the easiest way of connecting your Flask‑SQLAlchemy app to your database

app = Flask(__name__)
app.secret_key = "any key"
db = SQLAlchemy(app)

Say you want to connect to MySQL database on your local machine it can be done this way. This will work if your database does not have any password associated with it. If your database has a password then you can add that password after root or username you have for your database.

app.config["SQLALCHEMY_DATABASE_URI"] = 'mysql://root@localhost/database_name'
app.config["SQLALCHEMY_TRACK_MODIFICATIONS"] = False
db.init_app(app)

And make sure that your server is up and running. The app needs to be told about the tables in your database before you access the data in them. It can be done this way

class Student(db.Model):
    __tablename__ = "name_of_table"
    id = db.Column(db.Integer , primary_key = True , nullable=False)
    name= db.Column(db.String)

Any more fields can be added, it is just a small example and for every table in the database this has to be done so I suggest all this to be in a separate file.

(by Gayathri Srivathsanc8999c 3f964f64ManojKumar)

참조 문서

  1. Connect to existing tables in database using SQLAlchemy (CC BY‑SA 2.5/3.0/4.0)

#SQLAlchemy






관련 질문

타임스탬프 열에서 연도만 검색하는 방법은 무엇입니까? (How to retrieve only the year from timestamp column?)

SQLAlchemy: 'in_'에 대한 필터는 효과가 없습니다. (SQLAlchemy: Filter on 'in_' has no effect)

sqlalchemy 쿼리 필터에 변수를 추가하고 문자열 쿼리로 변환하려면 어떻게 합니까? (How do I add a variable to a sqlalchemy query filter and convert it to a string query?)

자동 플러시를 비활성화하고 자동 커밋이 작동하지 않는 후 Flask sqlAlchemy (Flask sqlAlchemy after disable autoflush and autocommit not working)

R과 반짝이는 다층 테이블을 만드는 방법은 무엇입니까? (How to make multiple layered table form with R and shiny?)

sqlalchemy.exc.OperationalError 식별 (Identifying sqlalchemy.exc.OperationalError)

ImportError: 'PY2' 이름을 가져올 수 없습니다. (ImportError: cannot import name 'PY2')

SQLAlchemy: 부분적으로 지정된 관계 (SQLAlchemy: partially specified relationship)

SQLAlchemy를 사용하여 데이터베이스의 기존 테이블에 연결 (Connect to existing tables in database using SQLAlchemy)

sqlalchemy.exc.IntegrityError: (sqlite3.IntegrityError) NOT NULL 제약 조건 실패: user.words (sqlalchemy.exc.IntegrityError: (sqlite3.IntegrityError) NOT NULL constraint failed: user.words)

날짜 시간에 대한 ValidationError (ValidationError for datetime)

pytest에서 SAWarning을 무시하는 방법 (How to ignore SAWarning in pytest)







코멘트