매일 한 번======>Django 2012.08.21

7613 단어 django
초보적으로 django-powerd 인터페이스 단계를 수행합니다.
  • #django.admin.py start 프로젝트 mysite 프로젝트를 만듭니다. 프로젝트 이름에 있는django에 속하는 것들
  • url 창에/hello/들어오는 요청 입력
  • manage.py 이 파일은 setting을 먼저 읽었습니다.py 이 설정 파일, ROO 포함URLCONF 등등
  • django는 URLconf의 모든 URL 모드에서/hello/와 일치하는 첫 번째 항목을 찾습니다.
  • 일치하는 것을 찾으면 해당하는 보기를 호출하고 없으면 기본값으로 되돌려줍니다.
  • 뷰 함수가 HttpResponse
  • 를 반환합니다.
  • Djnago는 HttpResponse를 웹 페이지에 적합한 HTTP response로 변환합니다.

  • 구축하는 과정에서 mysite의 urls에서 우리가 연 app의 urls를 도입할 수 있다. include('polls.urls')만 있으면 된다. 동시에 이를 app에 복사하고 app에서 이 urls 파일을 수정한 다음에 설정하면 된다. syntax error라는 문법 오류를 주의해야 한다. 즉, 방법과 include에서 모두 인용부호를 사용하고 복제하는 과정도 주의해야 한다.보통 스스로 만들면 폴스를 찾을 수 없다는 힌트를 준다.
    URLconf의 정규 표현식 사용:
     
  • .임의의 단일 문자
  • \d 임의의 숫자
  • + 하나 이상 일치
  • {1,3} 하나에서 세 개 사이의 표현식 e.g.\d{1,3} 하나 또는 두 개 또는 세 개의 숫자와 일치
  • [a-z] 임의의 문자
  • [^d] + d가 아닌 문자 하나 이상
  • ?0 또는 이전 표현식\d?0개 또는 숫자 일치
  • * 0 개 이상
  • MODEL 모형---------------------------------------------------------------------
    첫 번째 애플리케이션:
    프로젝트와 app의 차이점은 하나는 코드입니다. 하나의 프로젝트는 여러 개의django app와 그것들에 대한 설정을 포함합니다.프로젝트는 데이터베이스 연결을 정의하는 곳, 설치된 app 목록, TEMPLATE-DIRS 등 설정 파일을 제공합니다.하나의 app는django 기능의 집합으로 보통 모델과 보기를 포함하고 Python 패키지의 구조 방식에 따라 존재한다.app의 관건은 그들이 다른 프로젝트에 이식되어 복용될 수 있다는 것이다.만약에 관련 모듈이 없는 복잡한 사이트, 예를 들어 전자상거래와 지역사회 같은 사이트를 많이 만들면 이런 모듈을 나중에 다시 사용할 수 있도록 서로 다른 app로 구분해야 한다.
    시스템은 app에 대해 약속이 있습니다.django의 데이터베이스 모델을 사용하려면django app를 만들어야 합니다.모델은 반드시 apps에 놓아야 합니다.
    Python 코드에서 모델을 정의합니다.
    django모델은python 코드 형식으로 기술된 데이터가 데이터베이스에 정의된 것으로 데이터베이스 차원에서 보면 CREATE TABLE 문장과 같다. 단지 SQL이 아니라python 코드를 실행할 뿐이고 데이터베이스 필드 정의보다 더 많은 의미를 포함한다.django는 모델로 백엔드에서 SQL 코드를 실행하고 결과를 파이톤의 데이터 구조로 설명합니다.django도 모델을 사용하여 SQL이 처리할 수 없는 고급 개념을 나타낸다.
    django는 기존 데이터베이스 테이블에서 자동으로 스캔하여 모델을 생성하는 실용적인 도구를 제공합니다.이것은 기존의 데이터베이스에 있어서 매우 빠르고 유용하다.
          
    모든 모델은 하나의 데이터베이스 테이블에 해당하고 모든 속성도 이 테이블의 한 필드이다.속성명은 바로 필드 이름으로 데이터베이스의 필드 형식에 해당한다.모든 데이터베이스 테이블은 하나의 종류인'이 규칙의 예외적인 상황은 다대다의 관계'에 대응한다.예를 들어 북에는 여러 쌍의 필드가 있는데, 책 한 권에 한 명의 작가가 있다는 것을 나타낸다. 그러나 북 데이터베이스 테이블에는 authors 필드가 없다.반대로,django는 책과 저자 간의 映射 관계를 처리하기 위해 추가 표 (다중 연결 표) 를 만듭니다.이 모델에 대해 어떤 키도 정의하지 않았습니다.django는 자동으로 증가하는 키 필드를 생성합니다. 각django모델은 단독 키 id를 요구합니다.
    syncdb 명령은 모델의 수정이나 삭제를 데이터베이스에 동기화할 수 없습니다.모델을 수정하거나 삭제하고 데이터베이스에 제출하면syncdb는 아무런 처리도 하지 않습니다.
     
    publishe 목록을 인쇄할 때 유용한 정보를 얻지 못했습니다. 추가 방법이 필요합니다unicode__(), 이 방법은 파이톤이 대상을 유니버설로 표시하는 방법을 알려 줍니다.대상의 문자열 표시를 되돌릴 수 있는 모든 처리를 할 수 있습니다.유니버설 대상을 되돌려야 합니다.유니버설 대상은python 문자열로 다양한 종류의 문자를 처리할 수 있습니다.
    django의 모델은 대상을 위해 데이터베이스 테이블의 구조를 정의했을 뿐만 아니라 대상의 행위도 정의했다.
     
    filter() 데이터 필터 get()이 단일 대상을 가져오고 결과가 여러 대상이면 이상을 던지고 조회가 되돌아오지 않으면 이상을 던집니다.DoNotExist 이상은publisher라는 모델 종류의 속성입니다. 즉,publisher입니다.DoNotExist.응용 프로그램에서 이 예외를 캡처하고 처리할 수 있습니다.
    1 try:
    2     p = Publisher.objects.get(name='Apress')
    3 except Publisher.DoesNotExist:
    4     print "Apress isn't in the database yet."
    5 else:
    6     print "Apress is in the database."

    데이터 정렬: 검색 결과를 하위 세그먼트의 값에 따라 정렬하려면orderby(),publisher.objects.order_by("name") 여러 개의 하위 세그먼트를 기준으로 정렬하면 매개 변수를 추가하면 됩니다.자 세그먼트 앞면에 느낌표를 붙이는 것이 좋은 것은 역정렬이다.기본 정렬 방법을 다음과 같이 지정합니다.
     1 class Publisher(models.Model):
     2     name = models.CharField(max_length=30)
     3     address = models.CharField(max_length=50)
     4     city = models.CharField(max_length=60)
     5     state_province = models.CharField(max_length=30)
     6     country = models.CharField(max_length=50)
     7     website = models.URLField()
     8 
     9     def __unicode__(self):
    10         return self.name
    11 
    12     **class Meta:**
    13         **ordering = ['name']**

    class Meta:ordering = ['name']은Publisher 클래스에 내장되어 있으며, 반드시 축소되어 있어야 하며, 특수 모델과 관련된 옵션을 설정합니다.
    체인 조회, 체인식 형식,publisher.objects.filter(country="usa").order_by("-name")
    되돌아오는 데이터 제한: 목록 편집 문장, 예를 들어orderby('name')[0:2]이지만 음색인은 지원되지 않습니다.
    여러 개의 대상을 업데이트하면save 방법은 한 줄의 모든 열을 업데이트합니다. 어떤 경우에는 필요한 열만 업데이트하면 됩니다.어떤 열을 변경하면 결과 집합 (Query Set) 대상의 업데이트 () 방법을 호출할 수 있습니다:publisher.objects.filter(id=52).업데이트(name='sdhfisf')는 이렇게 하면 일어나지 않는다경쟁 조건.영향을 받은 기록 항목의 수를 나타내는 정수 값을 되돌려줍니다.
    대상 삭제: delete () 에서 대상을 호출하는 이 방법만 있으면 됩니다.모든 데이터를 삭제할 때 all()를 추가해야 합니다. 부분을 삭제하면publisher.objects.filter(country='usa').delete()
    수동으로 데이터를 입력하는 방법,django 관리 인터페이스!!!
    Django 사이트 관리 -----------------------------
    관리 인터페이스에 문제가 하나 있다. 창설이 너무 번거롭고 대중에 대한 기능을 개발할 때 웹 개발은 재미있지만 창설 관리 인터페이스는 천편일률적이다.반드시 사용자를 인증하고 표를 표시하고 관리하며 입력의 유효성을 검증해야 하기 때문에 매우 번거롭고 중복 노동이다.django의 자동 관리 인터페이스는 모드의 메타데이터를 읽고 강력하고 사용할 수 있는 인터페이스를 제공하며 사이트 관리자가 바로 사용할 수 있습니다.
            django.contrib 패키지는 방대한 기능 집합으로django 기본 코드의 구성 부분이고django 프레임워크는 많은 부가 구성 요소를 포함하는 기본 코드로 구성되어 있다.django와 묶으면 선택할 수 있는 Python 표준 라이브러리의 실제 실현으로 볼 수 있습니다.django가 자체로 가지고 있는 우수한 구성 요소는 모두django에 있습니다.contrib에서
            python manage.py createsuperuser에서 수퍼유저를 만듭니다.
    1 Exception Type:    DatabaseError
    2 Exception Value:    
    3 no such column: books_publisher.website

    Websit는 열 이름입니다. 처음에 쓸 때 Website를 써야 하는데 동기화한 후에 수정한 결과 이런 오류가 발생했습니다. 그래서 이때.열명을 어떻게 수정합니까???????

    좋은 웹페이지 즐겨찾기