SQLAlchemy on the way
14214 단어 sql
This is a great ORM ( Object-Relational Mapper ) which is compatible with xxxx and many others.
SQLAlchemy 0.8 Documentation
link: http://docs.sqlalchemy.org/en/rel_0_8/orm/examples.html
IMPORTANT TO GO THROUGH
Object Relational Tutorial
http://docs.sqlalchemy.org/en/rel_0_8/
볼 것:
python - __str__ 와repr__ 의 차이!!
원본 주소:http://blog.csdn.net/yyt8yyt8/article/details/7030416
내장 함수 str () 와 repr () (representation, 표현, 표시) 또는 반 따옴표 연산 자 (`) 는 대상 의 내용, 유형, 수치 속성 등 정 보 를 문자열 로 편리 하 게 얻 을 수 있 습 니 다.str () 함수 에서 얻 은 문자열 은 가 독성 이 좋 고 (그러므로 print 에서 호출 됨) repr () 함수 에서 얻 은 문자열 은 이 대상 을 다시 얻 는 데 사 용 됩 니 다. 일반적인 상황 에서 obj = = eval (repr (obj) 이라는 등식 은 성립 됩 니 다.이 두 함 수 는 하나의 대상 을 매개 변수 로 받 아들 여 적당 한 문자열 을 되 돌려 줍 니 다.
사실 repr () 와 '같은 일 을 하고 대상 의' 공식 '문자열 로 되 돌아 갑 니 다.그 결 과 는 절대 다수의 경우 (모든 것 이 아니 라) 값 을 구 하 는 연산 (내장 함수 eval () 을 통 해 이 대상 을 다시 얻 을 수 있다.
str () 는 다 릅 니 다. 대상 의 가 독성 이 좋 은 문자열 을 생 성 합 니 다. 결 과 는 eval () 로 값 을 구 할 수 없 지만 print 출력 에 적합 합 니 다.
다음 예:
>>> class D(object):
... def __str__(self):
... return "a __str__"
... def __repr__(self):
... return "a __repr__"
...
>>> dr = D()
>>> print dr
a __str__
>>> dr
a __repr__
>>> "%s" % dr
'a __str__'
>>> "%r" % dr
'a __repr__'
>>> dr
a __repr__
>>>print dr
'a __str__'
왜 repr () 가 있 으 면 '?
Python 에서 어떤 조작 부호 와 함 수 는 같은 일 을 합 니 다. 왜냐하면 어떤 경우 에는 함수 가 조작 부호 보다 더 적합 하기 때 문 입 니 다. 예 를 들 어 함수 대상 이 매개 변수 로 전달 할 수 있 기 때 문 입 니 다.쌍성 호 (*) 곱셈 연산 과 pow () 내 건 함 수 는 모두 x 의 y 차방 으로 돌아간다.
기타 전용 클래스 의 방법: python_전용 클래스 방법
링크 주소:http://www.cnblogs.com/xupeizhi/archive/2012/07/20/2601598.html
기본 코드 는 이 럴 수 있어 요.
# create SQL engine
from sqlalchemy import create_engine
# To maintain a catalog of classes and tables relative to that base
from sqlalchemy.ext.declarative import declarative_base
# To accomplish the class mapped to the table with objects that present \
# the components of our table
from sqlalchemy import Column, Integer, String
# To start a session to talk to SQL database
from sqlalchemy.orm import sessionmaker
# [Create Engine]
engine = create_engine('sqlite:///:memory:', echo = True)
# An instance to set rules :)
Base = declarative_base()
class User(Base):
__tablename__='users'
id = Column(Integer, primary_key= True)
name = Column(String)
fullname = Column(String)
password = Column(String)
def __init__(self, name, fullname, password):
self.name = name
self.fullname = fullname
self.password = password
# Optional: This is used for to check out elments visually
def __repr__(self):
return "<User('%s', '%s', '%s')>" % (self.name, self.fullname, self.password)
# start a session class instance
Session = sessionmaker()
# Bind engine to a session
Session.configure(bind=engine) # once engine is available
# instantiate a session
session = Session()
# The above Session is associated with our SQLite-enabled Engine,\
# but it hasn’t opened any connections yet. \
# When it’s first used, it retrieves a connection \
# from a pool of connections maintained by the Engine,
# and holds onto it until we commit all changes and/or close the session object.
그리고 힌트 에 따라 계속 하 세 요.session 의 내용, session filter
중요 한 내용:
http://docs.sqlalchemy.org/en/rel_0_8/orm/tutorial.html#adding-new-objects
session 에서 재 미 있 습 니 다. 데 이 터 를 꺼 낼 때.예 를 들 면
thief = session.query(User).filter_by(name="wendy").first()
이때 thief. name = "jake" 를 수정 합 니 다.
그리고 session. comit ()
데이터베이스 에 데이터 가 바 뀌 었 음 을 발견 할 수 있 습 니 다.웬 디 가 제 이 크 가 됐어 요.
×××같은 번호 로 직접 값 을 부여 하 는 것 은 별명 에 해당 하 며, 모두 같은 대상 에서 조작 하 는 것 이다.
만약 우리 가 데이터 의 사본 을 얻 고 싶 을 뿐, 원래 의 데 이 터 를 조작 하 는 것 이 아니라면.
직접 조작 하 는 것 은 모두 class 대상 이기 때문에 배열, 원 그룹 처럼 slice 절편 a = b [:] 를 새로 만 들 수 없습니다. 이렇게 하면 이러한 대상 복사 에서 안 됩 니 다.여 기 는 copy 모듈 을 사용 할 수 있 습 니 다.
import copy
copy 모듈 은 1 얕 은 복사 (기본 복사) 2 깊 은 복사 로 나 뉜 다.
1. 얕 은 복사 본 은 조개 류 만 복사 하고 대상 의 부 류 는 복사 하지 않 는 다.
2. 복사 대상 의 하위 클래스 와 부모 클래스 를 심 복사
이렇게 대상 을 복사 하여 조작 한 후에 도 session. comit () 후에 데이터 에 오류 처 리 를 하지 않 습 니 다.데 이 터 를 수정 하고 일부 데이터 만 추출 하 는 작업 을 편리 하 게 하기 위해 서다.
자세 한 상황 은 보십시오http://www.jb51.net/article/15714.htm Python
복사 대상 (딥 복사 deepcopy 와 얕 은 복사 copy)
session 에 대해 서 는 session. dirty 의 용법 도 있 습 니 다.
We can add more User objects at once using add_all() :
>>> session.add_all([
... User('wendy', 'Wendy Williams', 'foobar'),
... User('mary', 'Mary Contrary', 'xxg527'),
... User('fred', 'Fred Flinstone', 'blah')])
Also, Ed has already decided his password isn’t too secure, so lets change it:
>>> ed_user.password = 'f8s7ccs'
The Session is paying attention. It knows, for example, that Ed Jones has been modified:
>>> session.dirty
IdentitySet([<User('ed','Ed Jones', 'f8s7ccs')>])
and that three new User objects are pending:
>>> session.new
IdentitySet([<User('wendy','Wendy Williams', 'foobar')>,
<User('mary','Mary Contrary', 'xxg527')>,
<User('fred','Fred Flinstone', 'blah')>])
We tell the Session that we’d like to issue all remaining changes to the database and commit the transaction, which has been in progress throughout. We do this via commit() :
sql>>> session.commit()
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
깊이 중첩된 객체를 정확히 일치 검색 - PostgreSQL목차 * 🚀 * 🎯 * 🏁 * 🙏 JSON 객체 예시 따라서 우리의 현재 목표는 "고용주"사용자가 입력한 검색어(이 경우에는 '요리')를 얻고 이 용어와 정확히 일치하는 모든 사용자 프로필을 찾는 것입니다. 즐거운 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.