Django 소스 단면: Django 객체 관계 매핑(ORM)

2055 단어 django
인용하다
앞에서 알 수 있듯이 리퀘스트의 도착과response에 대응하는 반환 절차는 데이터 처리와 데이터베이스와 떨어질 수 없다.우리도 자주 views에 있어요.py의 함수 정의에서 데이터베이스와 접촉합니다.
django ORM 소스 코드 조직 구조
데이터베이스에 대해django는 자신만의 ORM(대상 관계 매핑)을 가지고 있기 때문에 다른 프레임워크는 마음대로 ORM을 바꿀 수 있지만 django는 이렇게 하는 것을 권장하지 않는다.django에 많은 모델이 내장되어 있기 때문에 이런 모델은 django에 내장된 ORM으로 이루어진 것이 틀림없다. 만약에 교체한 후에 내장된 모델은 무효다. 다음 두 가지 선택을 제외하고는.
  • django의 ORM을 철저히 파악하고 자신의 ORM을 맞춤형으로 만들었지만 반드시 안의 규칙, 예를 들어 클래스의 속성명 등을 사용해야 한다.
  • 또는 자신의 ORM을 교체하고django에 내장된 모델을 사용하지 않습니다.

  • 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

    좋은 웹페이지 즐겨찾기