Django P5로 구축된 리테일 웹사이트 (2020-02-16)

5193 단어 djangodailynotes

장고:




django sqlite에서 하나의 테이블 삭제: SO 주석




$ python manage.py dbshell
# if you do not know which table to delete/drop, run:
sqlite > SELECT * FROM sqlite_master WHERE type='table';
# if you already know:
sqlite > DROP TABLE appname_modelname;

# DO NOT FORGET the semi-colon at the end, otherwise it will prompt '...>' signalling the expression is unfinished



  • ### 어디에 signal.py 파일이 있어야 하는지:
    article by Vitor Freitas & Django official doc
  • signal.pymodels.py와 같은 디렉토리에 urls.py 파일을 만듭니다.
  • 파일 편집, 코드 작성

  • 동일한 디렉토리 아래의 apps.py 파일에 다음 코드를 추가하십시오.

    def ready(self):
        import appName.signals # noqa
    

  • settings.py , INSTALLED_APPS , 'appName.apps.appNameConfig',에 등록하여 signal.py가 제대로 작동하도록

  • 네 단계를 따르십시오


  • ### 모델 - DateTimeField(auto_now=True)DateTimeField(auto_now_add=True)
  • DateTimeField(auto_now=True) -- 이 모델 인스턴스를 편집할 때마다 업데이트됩니다
  • .
  • DateTimeField(auto_now_add=True) -- 이 모델 인스턴스가 생성될 때 시간을 한 번 설정합니다



  • ### SO 묻고 답하기 Django - logout view customisation fail



  • 컨텍스트 프로세서


  • 동일한 컨텍스트를 다른 보기에 전달할 때 반복적인 동작을 발견하는 경우 프로젝트에 컨텍스트 프로세서를 추가합니다.
  • models.py의 동일한 디렉토리에서 context_processors.py라는 파일을 생성합니다.

  • 함수를 만듭니다.

  • from .models import Category
        from django.template.context_processors import request
    
    def category_context_processor(request):
        categories = Category.objects.all()
        return {'categories': categories}
    



    3. add this processor to `settings.py`
    



    ```python
    TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR, 'templates')],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                ... # other processors
                ... # add code below:<app-name>.<file-name>.<function-name>
                'app-name.context_processors.category_context_processor',
                    ],
                },
            },
        ]
    ```
    


    이제 각 보기에 categories를 전달할 필요가 없습니다! 그리고 이 코드는 사이트의 모든 요청에서 실행됩니다.

    부트스트랩




    기본값을 재정의하려면



    간단히 body 태그에 id를 추가하십시오.

    <body id="bootstrap-override">
    


    기본 css를 재정의할 때 이 ID를 참조하십시오.


    일반 지식




    CSS의 URL:


  • css는 정적 파일이므로 내부 URL도 정적이어야 합니다. css 파일에서 url()에 상대 URL을 사용하십시오.
  • CSS에서 파일을 업데이트할 때 어떤 이유로 파일을 로드하는 속도가 느립니다. 적용하려면 때때로 로컬 서버를 다시 시작해야 합니다
  • .

    ## 디버그 도구 모음


  • 데이터베이스 쿼리를 최적화하려면: article by Victor Freitas
  • select_related를 사용하여 불필요한 쿼리 방지
  • 디버그 도구 모음을 사용하여 쿼리 추적


  • 좋은 웹페이지 즐겨찾기