일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Could not open client transport with JDBC Uri: jdbc:hive2://localhost:10000
- Safe mode is ON
- hive beeline 설정
- mac hive 3
- 백준 18428
- 카카오 자물쇠와 열쇠
- hive beeline 실행
- mac hadoop 설정
- hive beeline 에러
- 도커 교과서
- hadoop safe mode
- mac hadoop 3
- code=0)
- 자소서 시간 줄이기
- 기업 조사 빨리 하는 법
- 이더리움
- 카카오 2020 코테
- mac hadoop 설치
- Failed to connect to localhost:10000
- 자소서 빨리
- hadoop safe mode leave
- 자소서 빨리 쓰는 법
- 자소서 너무 오래 걸림
- hive beeline
- 이더리움 #ethereum
- mac hive
- 카카오 2020 코딩테스트
- is not allowed to impersonate hive (state=08S01
- mac hadoop
- Resources are low on NN
- Today
- Total
A seeker after truth
django 공부 도중 모르는거 검색한 내용+ 기억하기 위한 기록(1): 투표 사이트 튜토리얼 본문
django 공부 도중 모르는거 검색한 내용+ 기억하기 위한 기록(1): 투표 사이트 튜토리얼
dr.meteor 2020. 1. 11. 19:43공부한 서적은 <장고로 쉽게 배우는 배프의 오지랖: 파이썬 웹 프로그래밍>(디지털북스, 2019)에서 투표 사이트 만들기 튜토리얼.
처음 공부할 땐 내용이 눈에 잘 들어오지 않았는데 두 번 하니까 훨씬 이해 잘되더라.
코드: https://github.com/secureWKkim/my1stDjangoStudy
<검색 내용>
1. ForeignKey(on_delete.CASCADE)에서 on_delete.CASCADE 의미
cascade는 it에서는 직렬, 종속, 일렬 이란 뜻으로 나온다. 그래서 데이터베이스에서 삭제 작업을 할 때 한 가로줄이 삭제되게 하는 설정일 거라고 생각했는데 정확했다.
좀더 자세하게 나온 자료: https://lee-seul.github.io/django/backend/2018/01/28/django-model-on-delete.html
2. django.timezone.now()
현재 시간을 가지고 옴.
3. python의 datetime 모듈의 timedelta 객체
https://docs.python.org/ko/3/library/datetime.html#timedelta-objects
https://python.bakyeono.net/chapter-11-3.html
여기 나오긴 하는데 무슨 말인지 잘 모르겠음...
4. 하드 코딩의 의미
데이터를 코드 내부에 직접 입력하는 것. 그니까 뭐 파일이나 데에 이런게 아닌 경우를 말하는 거겠지. 아래 내용 모두가 유익해서 나중에 생각나면 몇 번 더 읽어보면서 개념 익숙해져도 좋겠다.
https://namu.wiki/w/%ED%95%98%EB%93%9C%EC%BD%94%EB%94%A9
장고 공부에서는 왜 나왔던 것이냐면, index.html에서 상세 페이지로 이동하기 위한 링크 주소가 하드코딩되어 있었다는 것이다.
href 속성값을 직접 써주는 방식으로 하면, 나중에 주소를 polls가 아닌 다른 형태로 바꾸고 싶을 때 html을 직접 다 열어서 바꿔야 한다는 불편함이 있다. 그래서 url 템플릿 태그를 사용해서 바꾸라는 내용이다.
<기록 내용>
1. polls/urls.py에서
urlpatterns = [
# ex: /polls/
path('', views.index, name='index'),
# ex: /polls/5/
path('<int:question_id>/', views.detail, name='detail'),
# ex: /polls/5/results/
path('<int:question_id>/results', views.results, name='results'),
# ex: /polls/5/vote/
path('<int:question_id>/vote/', views.vote(), name='vote'),
]
화살 괄호 <>는 변수를 의미한다. 이 부분에 해당하는 값을 뷰에 인자로 전달한다. 적어두면 기억에 더 잘 남고 뒷내용 이해할 때도 도움될 것 같아서 기록
2. django.shortcuts의 render 메서드
return HttpResponse(template.render(context, request) )에서 HttpResponse에 해당하는 과정을 생략해줌.
loader -> render로 축약 가능
return render(request, 'polls/index.html', context) 로 바뀜. 두 번째 인자가 템플릿에 해당하고.
3. Http404 과정을 단축하는 함수는 get_object_or_404 함수다.
4. url namespace
네임스페이스는 분리된 경로를 만드는 개념인데, 예를 들어 detail이란 주소 이름을 가진 뷰가 polls에도 있고 또 다른 앱에도 있을 경우 장고는 어느 뷰의 url을 만들지 알 수 없다. 그래서 이런 경우 네임스페이스를 설정해 각각의 뷰가 어느 앱에 속한 것인지 구분하도록 할 수 있다. 필수로 설정할 필요는 없지만 프로젝트가 복잡해질수록 네임스페이스가 있는 것이 편리하다. polls/urls.py에 설정한다. 그리고 index.html에서 하드 코딩이라고 url 태그로 고쳤던 부분의 'detail' 앞에 polls:만 붙여주면 된다.
5. 제네릭 뷰
는 장고에서 미리 준비한 뷰를 말한다. 웹 플밍에 일반적으로 사용되는 뷰들은 이미 장고에서 대부분 만들어 뒀다. 이것들을 사용하면 코드를 적게 사용하고 기능들을 빠르게 완성할 수 있다.
6. static 파일 사용하기
css, js 같은 파일을 말함. 이런 파일을 사용하려면 static 폴더를 만들고 그 안에 파일을 저장한 후 사용할 수 있다.
<HTML> 내용은 따로 기록. 본인은 생활코딩으로 html 공부를 좀 하긴 했지만 외우진 않아서 어렴풋이만 기억하는 상태, 또한 고급 내용도 TCPSchool 사이트로 조금 공부한 수준. css는 아예 모름. 문제는 저번에 공부해보니까 생활코딩이나 TCPSchool에 안 나와있는 문법이 자꾸 나오는거 봐서 장고만의 문법이 따로 있는 건가 싶기도 하고... 이 부분 어렵고 답답하다.
1. ul, li 태그
unordered list, list item의 약자.
좀 더 자세한 자료:https://developer.mozilla.org/ko/docs/Web/HTML/Element/li
2. p 태그
paragraph의 줄임말. 단락.
3. a태그와 href
a는 문서를 링크시키기 위해 사용하며, href는 문서를 링크시키기 위해 존재.
http://www.tcpschool.com/html/html_basic_links
4. form, input
form action="", method=""
의 양식으로 돌아가는데, action의 경우 처리할 페이지 정보를, method는 http 메서드를 정하는 부분이다.
http://www.tcpschool.com/html/html_input_forms
http://www.tcpschool.com/html/html_input_inputAttr
input value의 세 가지 속성: https://dasima.xyz/html-input-value/
5. 장고 템플릿 문법이 따로 있는 게 맞았다!!! html과 별개로 장고 고유의 문법이라고 한다. 자세한 내용은 아래 링크.
https://cupjoo.tistory.com/100
중에서 csrf_token 부분은 csrf 공격을 막기 위한 수단 중 하나로서, 방금 서버에서 들어온 요청이 사이트 내부에서 온 것이 맞는지 확인하는 용도라고 한다.(해커가 만든 외부 사이트에서 우리가 만든 사이트에 로그인 한 사용자 권한으로 공격하는 것을 막기 위함)
6. get_object_or_404에서 pk=?
primary key의 약자. 같은 클래스로부터 객체들이 태어날 텐데, 우리는 그것들을 구분할 방법이 없다. 그래서 그 녀석들을 구분할 수 있게 해주는 인식표 를 달아주는 값!
'Programming Language > Python' 카테고리의 다른 글
[python] .join() (0) | 2020.01.13 |
---|---|
[python] 파이썬의 실수 표현 문제 (부동 소수점) (0) | 2020.01.12 |
[python] (1 == 1.0) 이 True인 이유 (1) | 2020.01.10 |
[python] 원하는 리스트 자료형 만들 때 (0) | 2020.01.07 |
파이썬 일부 팁 정리(가변 인수, 문자열&리스트 메서드 분류) - 지속적 업데이트ing (0) | 2020.01.03 |