내가 파이썬 SQLAlchemy의를 생성하려면, 이것이이 개 테이블,SQLAlchemy의 내 데이터베이스에이 테이블
table name : student
- id (integer)
- student_name (varchar(20))
- edu_level_id (integer)
포함 기록에 가입
id | student_name | edu_level_id
1 | John | 2
2 | George | 1
테이블 : master_edu_level
* id (integer)
* name_level (varchar(50))
기록 :
id | name_level |
1 | high school
2 | Bachelor
3 | Master
같은 기록을 표시하는 방법 :이 같은 SQL을 설명하면
id | student_name | education
1 | John | Bachelor
2 | George | high school
을 :
from app import db
from app import session
from sqlalchemy import Table, DateTime,Date, Text, text, Column, Integer, String, MetaData, ForeignKey, select, func
from sqlalchemy.ext.declarative import declarative_base
from marshmallow_jsonapi import Schema, fields
from marshmallow import validate
from marshmallow import ValidationError
from sqlalchemy.exc import SQLAlchemyError
from sqlalchemy.orm import relationship
class Student(db.Model):
__tablename__ = 'student'
id = db.Column(Integer, primary_key=True, index=True)
student_name = db.Column(String(20), nullable=False, index=True)
edu_level_id = db.Column(Integer)
class StudentSchema(Schema):
not_blank = validate.Length(min=1, error='Field cannot be blank')
id = fields.Integer(dump_only=True)
student_name = fields.String()
edu_level_id = fields.String()
class Meta:
type_ = 'student'
student_schema = StudentSchema()
class MasterEduLevel(db.Model):
__tablename__ = 'master_edu_level'
__table_args__ = {'extend_existing': True}
id = db.Column(Integer, primary_key=True, index=True)
name_level = db.Column(String(20), nullable=False, index=True)
class MasterEdulevelSchema(Schema):
not_blank = validate.Length(min=1, error='Field cannot be blank')
id = fields.Integer(dump_only=True)
name_level = fields.String()
class Meta:
type_ = 'master_edu_level'
schema = MasterEdulevelSchema()
방법 테이블 ORM 가입 만드는 :
이select student.id, student.name,master_edu_level.name AS educatio FROM student
left join master_edu_Level ON master_edu_level.id = student.edu_level_id
이미 코드를 작성 파이썬 SQLAlchemy에? 첫 번째 단계 변화 스키마와 같은 길에
감사
-against-multiple-tables), 실제로는 [Student]에 [relationship] (http://docs.sqlalchemy.org/en/latest/orm/relationships.html)을 추가한다는 의미 였기 때문에 예를 들어'student.edu_level.name_level'과 같이 접근하거나'query (Student.student_name, MasterEduLevel.name_level) .join (MasterEduLevel) ... '과 같은 질의를하는 방법? –
@ helo1987 내 코드를 사용해 보셨습니까? 나는 당신의 질문에 대답 했습니까? – theodor