Python의 ORM 프레임워크 SQLObject에 대한 자세한 설명

WBOY
풀어 주다: 2023-06-10 17:06:07
원래의
972명이 탐색했습니다.

웹 애플리케이션의 광범위한 인기로 인해 Python은 웹 개발 분야에서 점점 더 널리 사용되고 있습니다. 오늘날 많은 Python 웹 프레임워크는 데이터베이스 운영을 위한 일부 ORM 프레임워크를 제공합니다. SQLObject는 매우 널리 사용되고 사용하기 쉬운 ORM 프레임워크 중 하나입니다. 이 기사에서는 SQLObject 프레임워크를 사용하는 방법을 자세히 소개합니다.

  1. SQLObject 설치

pip 도구를 사용하면 SQLObject를 쉽게 설치할 수 있습니다:

pip install sqlobject
로그인 후 복사
  1. 데이터베이스에 연결

먼저 sqlobject 라이브러리를 소개하고 ConnectionForURI 메서드를 사용하여 데이터베이스에 연결합니다. 다음은 MySQL 데이터베이스 연결의 예입니다.

import MySQLdb from sqlobject import * connection_string = 'mysql://user:password@localhost/database' connection = connectionForURI(connection_string) sqlhub.processConnection = connection
로그인 후 복사

사용자, 비밀번호, 로컬 호스트 및 데이터베이스는 실제 값으로 대체되어야 합니다.

  1. 모델 클래스 정의

모델 클래스를 정의할 때 SQLObject 클래스를 상속해야 합니다. 다음은 Person 클래스의 간단한 정의 예입니다.

class Person(SQLObject): name = StringCol(length=100) age = IntCol(default=0)
로그인 후 복사

Person 클래스에는 이름과 나이라는 두 개의 필드가 있습니다. name은 길이가 100인 문자열 유형이고, age는 초기값이 0인 정수 유형입니다. SQLObject는 StringCol, IntCol, FloatCol, DecimalCol, BoolCol, DateCol, DateTimeCol 및 TimeCol 등을 포함한 여러 가지 유형의 열을 제공합니다. 기본값, 고유성, 인덱스 등과 같은 열의 다른 속성을 설정할 수도 있습니다.

  1. Create table

데이터베이스에 테이블을 생성하려면 Python 셸이나 스크립트에서 모델 클래스를 정의하는 모듈을 도입하고 createTable() 메서드를 실행하세요.

from models import Person Person.createTable()
로그인 후 복사

테이블이 이미 존재하는 경우 다시 생성되지 않습니다.

  1. 데이터 삽입

테이블에 데이터를 삽입하려면 모델 클래스의 인스턴스를 만들고 각 필드에 값을 할당하기만 하면 됩니다. 예:

john = Person(name='John Smith', age=30)
로그인 후 복사

인스턴스를 데이터베이스에 저장하려면 save() 메서드를 호출합니다.

john.save()
로그인 후 복사

이 시점에서 데이터베이스에 person이라는 테이블이 생성되고 30세인 John Smith라는 행이 삽입됩니다. . 기록.

  1. 데이터 쿼리

SQLObject는 데이터베이스의 데이터를 쿼리하기 위한 다양한 메서드를 제공합니다. 다음은 일반적으로 사용되는 몇 가지 메서드 예입니다.

(1) 모든 레코드 가져오기

Person 테이블의 모든 레코드를 가져오려면 Person 클래스의 select() 메서드를 호출할 수 있습니다.

people = Person.select() for person in people: print(person.name, person.age)
로그인 후 복사

이 코드는 각 레코드를 순회합니다. Person 테이블에 이름과 나이 필드 값을 기록하고 출력합니다.

(2) 조건으로 레코드 필터링

조건으로 레코드를 필터링하려면 select() 메서드에 SQLExpression 객체를 전달할 수 있습니다. 예를 들어, 다음 코드는 30세 이상의 모든 사람을 검색합니다.

people = Person.select(Person.age >= 30) for person in people: print(person.name, person.age)
로그인 후 복사

마찬가지로 <, <=, >, >=, == 및 !=와 같은 연산자를 사용하여 비교할 수 있습니다.

(3) 필드별 정렬

필드별로 정렬하려면 select() 메서드에 OrderBy 절을 전달할 수 있습니다. 예를 들어 다음 코드는 연령 필드를 기준으로 오름차순으로 정렬합니다.

people = Person.select(orderBy=Person.age) for person in people: print(person.name, person.age)
로그인 후 복사

내림차순으로 정렬하려면 필드 이름 앞에 빼기 기호를 추가할 수 있습니다. 예:

people = Person.select(orderBy=-Person.age)
로그인 후 복사
  1. Update data

To update 데이터를 수정하려면 모델 클래스 인스턴스 속성 값을 수정한 다음 save() 메서드를 호출하면 됩니다. 예를 들어 다음 코드는 John Smith의 나이를 35세로 수정합니다.

john.age = 35 john.save()
로그인 후 복사
  1. Delete data

데이터를 삭제하려면 모델 클래스 인스턴스의 destroySelf() 메서드를 호출하기만 하면 됩니다. 예를 들어, 다음 코드는 John Smith라는 레코드를 삭제합니다.

john.destroySelf()
로그인 후 복사
  1. Summary

SQLObject는 Python 웹 개발에서 데이터베이스 작업을 크게 단순화할 수 있는 매우 편리한 ORM 프레임워크입니다. 이 기사에서는 데이터베이스 연결, 모델 클래스 정의, 테이블 생성, 데이터 삽입, 데이터 쿼리, 데이터 업데이트 및 데이터 삭제를 포함하여 SQLObject의 기본 사용법을 소개합니다. 독자들이 Python 웹 개발에 SQLObject를 사용해 볼 수 있기를 바랍니다.

위 내용은 Python의 ORM 프레임워크 SQLObject에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!