Django 소스 단면: Django 객체 관계 매핑(ORM)
2055 단어 django
앞에서 알 수 있듯이 리퀘스트의 도착과response에 대응하는 반환 절차는 데이터 처리와 데이터베이스와 떨어질 수 없다.우리도 자주 views에 있어요.py의 함수 정의에서 데이터베이스와 접촉합니다.
django ORM 소스 코드 조직 구조
데이터베이스에 대해django는 자신만의 ORM(대상 관계 매핑)을 가지고 있기 때문에 다른 프레임워크는 마음대로 ORM을 바꿀 수 있지만 django는 이렇게 하는 것을 권장하지 않는다.django에 많은 모델이 내장되어 있기 때문에 이런 모델은 django에 내장된 ORM으로 이루어진 것이 틀림없다. 만약에 교체한 후에 내장된 모델은 무효다. 다음 두 가지 선택을 제외하고는.
django는 크고 완전한 틀이지만 크고 완전한 것은 그 자체의 부담을 증가시켜 유연성을 크게 떨어뜨린다.그러니까 봐, 고내중저결합은 쉽지 않아.
데이터베이스 자체가 복잡하고 데이터베이스 조작과 관련된 옵션이 매우 많으며 ORM도 결코 간단하지 않다.django 데이터베이스 부분은django에 있습니다.db에서 구현되며, 확장하기 전에 소스 코드 파일 조직에 대해 설명합니다.
django.db
----backends
----dummy , ,
----mysql mysql
----oracle oracle
----.....
----models , backends
----fields
----.....
----sql , sql , where , sql ;
----.....
----aggregates.py
----base.py Model
----constants.py
----deletion.py
----expressions.py , where
----loading.py
----manager.py ORM
----options.py ,
----query.py
----query_utils.py
----related.py ` `
----signals.py
----__init__.py
django ORM 밑바닥의 실현은 모두django입니다.db.models에서.알다시피 데이터베이스 조작에 대한 옵션이 매우 많습니다. 여기서 이러한 옵션이 django ORM에서 어떻게 실현되었는지에 집중하지 않고 전개될 것은django ORM의 실현 프레임워크입니다. django ORM으로 간단한 조회 조작을 수행할 때 그 안에서 어떻게 일을 하고 공구류가 어떻게 조화를 이루는지 설명합니다.이것들을 이해하면django ORM을 사용하면 더욱 여유가 있을 것입니다.
저는 이미github에서 Django 원본의 주석을 백업했습니다. Decode-Django, 관심 있는 어린이 신발 포크죠.
훼방 2013-9-22
http://daoluan.net
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Django의 질문 및 답변 웹사이트환영 친구, 이것은 우리의 새로운 블로그입니다. 이 블로그에서는 , 과 같은 Question-n-Answer 웹사이트를 만들고 있습니다. 이 웹사이트는 회원가입 및 로그인이 가능합니다. 로그인 후 사용자는 사용자의 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.