문제 설명
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 Srivathsan、c8999c 3f964f64、ManojKumar)