일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- hadoop safe mode leave
- code=0)
- is not allowed to impersonate hive (state=08S01
- hive beeline 에러
- 이더리움 #ethereum
- hive beeline 실행
- mac hadoop 설정
- 자소서 시간 줄이기
- 백준 18428
- 카카오 2020 코딩테스트
- 자소서 빨리 쓰는 법
- Resources are low on NN
- mac hadoop 설치
- 이더리움
- 자소서 너무 오래 걸림
- Failed to connect to localhost:10000
- mac hive 3
- hadoop safe mode
- hive beeline
- Could not open client transport with JDBC Uri: jdbc:hive2://localhost:10000
- mac hadoop
- Safe mode is ON
- mac hadoop 3
- 카카오 2020 코테
- hive beeline 설정
- 기업 조사 빨리 하는 법
- 도커 교과서
- 카카오 자물쇠와 열쇠
- 자소서 빨리
- mac hive
- Today
- Total
A seeker after truth
django 공부 도중 모르는거 검색한 내용 + 기억하기 위한 기록(3)-dstagram(작성중) 본문
django 공부 도중 모르는거 검색한 내용 + 기억하기 위한 기록(3)-dstagram(작성중)
dr.meteor 2020. 2. 3. 11:11* 본문은 <django로 쉽게 배우는 배프의 오지랖: 파이썬 웹 프로그래밍>(2019, 디지털북스, 배프)를 공부하면서 기록한 내용입니다.
1. 내용 검색/기록
1) from django.contrib.auth.models import User - User의 정체?
=> 장고에서 계정을 관리하는 단위에 해당한다.
참고: https://velog.io/@ground4ekd/django-auth
https://docs.djangoproject.com/en/3.0/topics/auth/
2) on_delete 인수
예전부터 자주 봐왔던 이것!
class Photo(models.Model):
author = models.ForeignKey(User, on_delete=models.CASCADE, related_name='user_photos')
- 여기서 on_delete는 연결된 모델이 삭제될 경우 현재 모델 값은 어떻게 할것인지 정하는 부분 맞음. cascade(연결된 객체가 지워지면 해당 하위 객체도 같이 삭제), protect(하위 객체가 남아 있다면 연결된 객체가 지워지지 않음), set_null(연결된 객체만 삭제하고 필드값을 Null로 지정), set_default(연결된 객체만 삭제하고 필드 값을 설정된 기본 값으로 변경), set()(연결된 객체만 삭제하고 지정한 값으로 변경), do_nothing(아무일도 하지 않음)
- related_name은 연결된 객체에서 하위 객체의 목록을 불러올 때 사용할 이름. 포토 모델을 예로 들면 어떤 유저가 작성한 글을 불러올 때 유저 객체에 user_photos 속성을 참조하면 된다 (이 부분은 지금 이해가 안되서 일단 책의 문장 그대로 갖고와봤음)
3) 지금까지 봤던 startapp polls/bookmark/photo 이거 다 원래 장고에 있는 기능인거같아...그러지 않고서야 직접 지정하지도, 프로그램하지도 않은 저 많은게 다 나올리가 없단 생각이 들어... 후에 찾아볼 것.
어쨌든 여기서는 startapp photo 하면, photos 란 폴더가 생기고 그 밑에 연/월/일 순으로 하위폴더가 계속 생겨서 admin 사이트로 들어가서 직접 add한 사진이 저장된다. 그러나 사진의 양이 많아지면, 폴더가 너무 많이 생길 것이므로 이걸 수정하고자 한다면 어떻게 하면 될까?
답은 settings.py 파일에 MEDIA_ROOT/URL을 설정하는 것에 있다. 그렇게 하고 프로젝트 루트 밑에 media 폴더 설정 시 어떤 앱에서 업로드를 하더라도 이 폴더 밑에 각 앱 별로 폴더를 만들고 파일을 업로드하게 된다.
MEDIA_URL은 STATIC_URL처럼 파일을 브라우저로 서빙할 때 보여줄 가상의 URL이다. 가상 URL은 여러 편의 기능이 있지만 보안을 위해서도 필요한 기능이다. 이 가상 URL을 사용하면 서버 내부 폴더 구조를 숨길 수 있기 때문에 해커에게 정보를 적게 노출할 수 있다.
코드는 아래와 같다.
STATIC_URL = '/static/'
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
앞서 북마크 만들기의 마지막 부분에서 했던 정적 파일 로드 방법을 포함하여 지금까지 기술한 내용이 아래 링크에 일목요연하게 나와있다.
https://docs.djangoproject.com/en/3.0/howto/static-files/
4) admin.ModelAdmin
관리자 사이트에서 보이는 목록 화면을 커스터마이징할 수 있는 옵션 클래스를 만드는 이 기능에 대한 설명은 코드에, 부가적 설명은 아래 링크에 나와있다.
https://docs.djangoproject.com/en/3.0/ref/contrib/admin/#modeladmin-options
5) 파이썬은 다중 상속이 가능하다.
파이썬과 c++은 가능, 자바와 C#은 불가능하다.
다중상속은 상속 시 두개 이상의 클래스를 상속받는 것을 말한다.
class Country:
"""Super Class"""
...생략
class Province:
Province_list = []
class Korea(Country,Province ):
"""Sub Class"""
... 생략
장고 원래 코드(깃허브가면 있음) 뜯어보니까, 이게 밥먹듯이 나온다.
6) views.py 말고 photo/urls.py에 디테일 뷰 만드는 법
7) template 의 linebreaksbr 필터?
블로그 글 텍스트에서 행이 바뀌면 문단으로 변환하는 기능. 출처:https://tutorial.djangogirls.org/ko/django_templates/
8) 장고엔 로그인/아웃 기능이 이미 만들어져있다. 이 기능을 그대로 불러다 쓰면 된다.
2. html 문법
1) meta 태그
meta 태그는 해당 문서에 대한 정보인 메타데이터를 정의할 때 사용한다. 만약 name 속성이나 http-equiv 속성이 명시되었다면 반드시 content 속성도 함께 명시되어야 하며, 반대로 두 속성이 명시되지 않았다면 content 속성 또한 명시될 수 없다. HTML5에서는 <meta> 요소를 통해 웹 페이지에서 사용자가 볼 수 있는 영역인 뷰포트(viewport)를 제어할 수 있도록 name 속성에 viewport 속성값을 제공하고 있다.
출처: http://tcpschool.com/html-tags/meta
2) footer 태그
웹페이지 맨 밑에 보면 무슨 @copyright이나 powered by. ~ 이런거 있잖아?! 그거 말하는거임.
3) form 태그
사용자로부터 입력을 받을 수 있는 html 입력폼을 정의할 때 사용한다.
지금까지 잘 이해가지 않았던 부분은 장고 걸스 장고 튜토리얼 보니까 좀 이해가 되더라. div 안의 class는 css 선택자가 맞음. 장고걸스 튜토리얼 css 부분에도 나옴. 그리고 nav, navbar는 부트스트랩에 나오는 개념이었음. 아래 링크 참고
https://getbootstrap.com/docs/4.0/components/navbar/
뿐만 아니라 css 개념이기도 함.
'Programming Language > Python' 카테고리의 다른 글
mac vscode jupyter server crash 문제 (0) | 2020.04.06 |
---|---|
파이썬에 대한 기본 중 기본 배경지식 집합 (0) | 2020.01.27 |
django 공부 도중 모르는거 검색한 내용 + 기억하기 위한 기록(2)-북마크 만들기 (0) | 2020.01.23 |
[python] .join() (0) | 2020.01.13 |
[python] 파이썬의 실수 표현 문제 (부동 소수점) (0) | 2020.01.12 |