데이터베이스에서 항목을 반환하는 API를 개발 중입니다. 나는 Flask-SQLAlchemy, Flask-Marshmallow, Flask-Admin, Docker를 모두 사용하여 패키지하고 있습니다.API를 통해 DB 콘텐츠를 노출하는 Flask-Marshmallow 관련 문제
하나의 파일에서 Packages.py 나는 데이터베이스와 관련하여 다음 코드를 가지고있다. PckagesSchema 클래스는 Flash-Marshmallow 작업을 시도 할 때 추가 한 클래스입니다.
class Packages(db.Model):
id = db.Column(db.Integer, primary_key=True, autoincrement=True)
trackingnumber = db.Column(db.String(15))
email = db.Column(db.String(80))
localid = db.Column(db.String(80))
class PackagesSchema(ma.ModelSchema):
class Meta:
model = Packages
메인 파일에 나는 API GET 요청을 처리 할 부분을 아래로 더 다음 코드
from app.models import Packages, PackagesSchema
packages_schema = PackagesSchema()
db.create_all()
의 조각하고 있습니다.
@app.route('/packages', methods=['GET'])
def get_packages():
result = packages_schema.dump(Packages).data
return jsonify(result)
는 순간이 반환
{
"email": "Packages.email",
"localid": "Packages.localid",
"trackingnumber": "Packages.trackingnumber"
}
그러나, 확실히 플라스크-관리자 응용 프로그램이 표시 할 때 데이터베이스에 뭔가가있다.
플라스크 마쉬멜로와 함께 일하는 것은 나의 첫날이다. 그래서 나는 그다지 경험이 없으며 어떤 도움도 감사 할 것이다. 나는 https://flask-marshmallow.readthedocs.io/en/latest/ 을 읽었지만 아직도 붙어 있습니다.
이 부분은 result ='packages_schema.dump (Packages) .data'가 괄호 안에있는 쿼리 여야한다고 생각합니다. 그래서 'packages_schema.dump (Packages.query.all()). data'와 같은 것입니다. – GMarsh
BTW. 협약은 테이블 이름이 단수이어야한다는 것입니다. 따라서 모델의 클래스 이름을 패키지에서 패키지로 변경하는 것이 낭비 될 수 있습니다. – GMarsh